On 6/21/2012 11:42 PM, Xander Solis wrote:
Hello Python list,
Noob here with a newbie question. I'm reading and working on the
exercise of the book, Learn Python the Hard way 2.0. When I use this
code, I get "None" on the output. My question is why does this happen?
None is the default return value for python-coded functions and python
prints the value of expressions in interactive mode. Hmmm. But you seem
to be running in batch mode. But where is 7.5 from. You must be doing
more than shown.
Regardless, in my opinion, instead of printing, the function should
return the computed value. You can then print the returned value. Real
software should generally work that way. If nothing else, so you can
automate tests instead of checking screen output.
def get_numbers(first_num, second_num, operator):
if operator == 'add':
print first_num + second_num
elif operator == 'minus':
print first_num - second_num
elif operator == 'divide':
print first_num / second_num
elif operator == 'multiply':
print first_num * second_num
print "%r" % (get_numbers(1, 2, 'minus'))
print "%r" % (get_numbers(1+3, 2+9, 'add'))
print "%r" % (get_numbers(10, 2, 'divide'))
Output:
C:\code\python>ex19.py
-1
None
15
None
5
None
7.5
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list