On 04/08/11 00:16, David wrote:

After all, my_weight is a number that can be multiplied by a float.
I would expect Python to evaluate the expression after the (final)
operator and then having it inserted into the string.

But it doesn't because the % format operator has a higher precedence.
So it sees the line as

(string % value) * number

But you want

string % (value * number)

So you need parens to force it to see things your way.

print "My weight in pounds is %d"  % my_weight * 2.20462262

python weight.py
Traceback (most recent call last):
   File "weight.py", line 4, in<module>
     print "My weight in pounds is %d"  % my_weight * 2.20462262
TypeError: can't multiply sequence by non-int of type 'float'

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/



_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to