Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python print function issues

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.

like image 655
Robert Baugh Avatar asked May 03 '26 11:05

Robert Baugh


1 Answers

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
like image 146
Ashwini Chaudhary Avatar answered May 06 '26 01:05

Ashwini Chaudhary



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!