I'm new to Python and am working with Python 3.3.2.. I'm having trouble including data items in strings that I am trying to print. The % operator either prints out literally as in:
for miles in range (10, 70, 10):
km=miles*1.609
print ("%d miles --> %3.2f kilometers") % (miles, km)
produces:
%d miles --> %3.2f kilometers
along with the error:
Unsupported operand type for %: 'NoneType' and 'tuple'
But when I change the third line to:
print (%d "miles -->" %3.2f "kilometers") % (miles, km)
I get a syntax error on the %d. I was able to get the program to work correctly from the interactive mode by eliminating the 'print()' function but it will not produce an output in IDLE without the 'print()'. What am I missing? The research I have done trying to figure this out has been helpful in learning more about Python, but so far hasn't gotten the program working. By the way it should output:
10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers
I appreciate any help or assistance I can get on this problem.
Move % (miles, km) inside the print function:
print function returns None, so in your code you're actually trying to do:
None % (miles, km)
That's why you're getting that error.
Working code:
>>> for miles in range (10, 70, 10):
... km=miles*1.609
... print ("%d miles --> %3.2f kilometers" % (miles, km))
...
10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers
Using new style string formatting:
>>> for miles in range (10, 70, 10):
km=miles*1.609
print ("{:d} miles --> {:3.2f} kilometers".format(miles, km))
...
10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With