abel
abel

Reputation: 2383

Embed variable using sys.stdout.write in Python

I can embed variables using the print statement in python in this way

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

Output

Value is 10

but doing this

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

gives me the following error

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

Can I embed variables using sys.stdout.write instead of print?

Upvotes: 8

Views: 25812

Answers (1)

Sven Marnach
Sven Marnach

Reputation: 601679

You got the parentheses wrong. Should be

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

The % operator takes a string and a tuple (or a single object) as arguments. You tried to apply the operator to the return value of sys.stdout.write(), which is None. You need to apply it to the string before it is passed to sys.stdout.write().

Upvotes: 16

Related Questions