복붙노트

[PYTHON] 인쇄 기능이 없음을 반환하는 이유는 무엇입니까?

PYTHON

인쇄 기능이 없음을 반환하는 이유는 무엇입니까?

외부 인쇄물이 없음을 반환하는 이유를 이해하려고합니다.

>>> a = print(print("Python"))
Python
None
>>> print(type(a))
<class 'NoneType'>

나는주의했다 :

>>> a = print("hey")
hey
>>> type(a)
<class 'NoneType'>

누구나 여기에 일반적으로 어떻게되는지 설명 할 수 있습니까? 감사!

해결법

  1. ==============================

    1.print () 함수는 None을 반환합니다. 해당 반환 값을 인쇄하고 있습니다.

    print () 함수는 None을 반환합니다. 해당 반환 값을 인쇄하고 있습니다.

    그것은 print ()가 반환 할 것이 없기 때문입니다. 그 작업은 인수를 문자열로 변환 한 후 파일 객체 (기본값은 sys.stdout)로 작성하는 것입니다. 그러나 파이썬 (호출 포함)의 모든 표현식은 값을 생성하므로 이러한 경우에는 None이 생성됩니다.

    인쇄물을 여기에서 반환하는 것과 혼동스럽게 보입니다. 파이썬 인터프리터 인터프리터는 또한 인쇄합니다; None을 생성하지 않는다면 프롬프트에서 직접 실행 된 표현식의 결과를 출력합니다.

    >>> None
    >>> 'some value'
    'some value'
    

    그 문자열은 터미널에 에코 (인쇄)되었지만 None은 그렇지 않았습니다.

    print ()는 None을 반환하지만 같은 출력 (터미널)에 쓰므로 결과는 동일하게 보일 수 있지만 매우 다른 동작입니다. print ()를 다른 것에 쓰면 터미널에서 아무 것도 볼 수 없습니다.

    >>> from io import StringIO
    >>> output = StringIO()
    >>> print('Hello world!', file=output)
    >>> output.getvalue()
    'Hello world!\n'
    

    print () 함수 호출은 터미널에서 출력을 생성하지 않았고 None을 반환하고 그 다음 에코되지 않았습니다.

  2. from https://stackoverflow.com/questions/27959258/why-does-the-print-function-return-none by cc-by-sa and MIT license