Вставить переменную с помощью sys.stdout.write в Python

Я могу встраивать переменные, используя оператор print в 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 вместо печати?

1 ответ

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

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

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

licensed under cc by-sa 3.0 with attribution.