Почему sys.stdout.write выводит неожиданные символы? - PullRequest
3 голосов
/ 19 июня 2020
from sys import stdin, stdout
temp=1
stdout.write(str(temp))

Я ожидаю, что на выходе будет 1, но это 11. Почему?

1 Ответ

6 голосов
/ 19 июня 2020
>>> import sys
>>> help(sys.stdout.write)

Help on built-in function write:

write(text, /) method of _io.TextIOWrapper instance
    Write string to stream.
    Returns the number of characters written (which is always equal to
    the length of the string)

Первый "1" - это аргумент, который вы даете write, а второй "1" - это длина вашей строки, возвращаемой write.

>>> sys.stdout.write("Hello")
Hello5

Обратите внимание, что возвращаемое значение появляется в выводе, потому что это интерактивный сеанс. Если вы запустите этот код из файла .py, вы увидите только "Hello", как вы и ожидали.

...