Вставить переменную, используя sys.stdout.write в Python - PullRequest
8 голосов
/ 12 января 2011

Я могу встраивать переменные, используя оператор печати в python таким образом

i=10
print "Value is %s" % (i)

Вывод

Value is 10

, но делая это

i=10
sys.stdout.write ("Value is %s") % (i)

выдает мне следующую ошибку

TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'

Могу ли я встраивать переменные, используя sys.stdout.write вместо print?

1 Ответ

16 голосов
/ 12 января 2011

Вы ошиблись в скобках. Должно быть

i=10
sys.stdout.write("Value is %s" % i)

Оператор % принимает строку и кортеж (или отдельный объект) в качестве аргументов. Вы пытались применить оператор к возвращаемому значению sys.stdout.write(), которое равно None. Вам нужно применить его к строке, прежде чем она будет передана sys.stdout.write().

...