Bella - 1 year ago 85
Python Question

# Udacity Into to Computer Science (Python) Lesson 2 PS Stamps - Output includes "None"

I have searched the internet and tried variations of the code, but I just don't see why I get the Output "None" between the results, when I work on the PS 2 in Lesson 2 of Udacity's Intro to Computer Science.

Here is the PS and my current status:

``````# Define a procedure, stamps, which takes as its input a positive integer in
# pence and returns the number of 5p, 2p and 1p stamps (p is pence) required
# to make up that value. The return value should be a tuple of three numbers
# (that is, your return statement should be followed by the number of 5p,
# the number of 2p, and the nuber of 1p stamps).
#
# Your answer should use as few total stamps as possible by first using as
# many 5p stamps as possible, then 2 pence stamps and finally 1p stamps as
# needed to make up the total.
#

def stamps(n):
if n > 0:
five = n / 5
two = n % 5 / 2
one = n % 5 % 2
print (five, two, one)
else:
print (0, 0, 0)

print stamps(8)
#>>> (1, 1, 1)  # one 5p stamp, one 2p stamp and one 1p stamp
print stamps(5)
#>>> (1, 0, 0)  # one 5p stamp, no 2p stamps and no 1p stamps
print stamps(29)
#>>> (5, 2, 0)  # five 5p stamps, two 2p stamps and no 1p stamps
print stamps(0)
#>>> (0, 0, 0) # no 5p stamps, no 2p stamps and no 1p stamps
``````

which produces the output:

``````(1, 1, 1)
None
(1, 0, 0)
None
(5, 2, 0)
None
(0, 0, 0)
None
``````

Can anyone please explain where the the "None" is coming from?

You are calling the function that prints the result and then you are printing the function's return value which is `None`.

You should pick one method of displaying the data. Either print only inside the function:

``````def stamps(n):
if n > 0:
five = n / 5
two = n % 5 / 2
one = n % 5 % 2
print five, two, one
else:
print 0, 0, 0

stamps(8)
stamps(5)
stamps(29)
stamps(0)
``````

Or use `return`:

``````def stamps(n):
if n > 0:
five = n / 5
two = n % 5 / 2
one = n % 5 % 2
return five, two, one
else:
return 0, 0, 0

print stamps(8)
print stamps(5)
print stamps(29)
print stamps(0)
``````
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download