New to python, baffled by program output

Fuzzyman fuzzyman at gmail.com
Thu Sep 30 21:38:07 CEST 2004


On 30 Sep 2004 12:15:24 -0700, Lazareth at gmail.com (Lazareth S. Link)
wrote:

>Hiya to whoever might stumble across this.
>
>I've recently taken up learning how to script/program in python.
>I've made my first program, a simple fahrenheit-celsius converter,
>both ways.
>For some reason I fail to comprehend, the program writes a line of
>"None" when rerun in a while loop.
>Here is the code:
>
>---START---
>def choice_c():
>	print
>	celsius = input("Input celsius: ")
>	print "Fahrenheit: ",cel_fah(celsius)
>	print
>
>def choice_f():
>	print
>	fahrenheit = input("Input fahrenheit: ")
>	print "Celsius: ",fah_cel(fahrenheit)
>	print
>
>def cel_fah(placeholder):
>	return 9.0/5.0*placeholder+32
>
>def fah_cel(placeholder):
>	return (placeholder-32.0)*5.0/9.0
>
>def options():
>	print "press 'c' to convert celsius to fahrenheit."
>	print "press 'f' to convert fahrenheit to celsius."
>	print "press 'q' to exit program."
>
>choice = "n"
>options()
>while choice != "q":
>	choice = raw_input("Choice: ")
>	if choice == "c":
>		choice_c()
>	elif choice == "f":
>		choice_f()
>	print options()

This is your problem.
You're telling python to print the resultof the function options()
When called options prints the options - but it doesn't have an
explicit return value. This means that it returns None when it has
finished and python duly prints that for you.

Replace 'print options()' with just 'options()' which will just call
the options procedure without expecting a return value.

HTH

Regards,

Fuzzy

>---END---
>
>Any of you know why it prints that line? Is is just my comp?
>If any applies, how to get around it?
>Would greatly appreciate the help.




More information about the Python-list mailing list