"Joseph Bae" <[EMAIL PROTECTED]> wrote
temp = input("Enter A Number : ")
convertTo = raw_input("Convert To (F)ahrenheit or (C)elsius? : ")
if convertTo == "F":
convertedTemp = convertToFahrenheit(temp)
print "%d Celsius = %d Fahrenheit" % (temp, convertedTemp)
else:
convertedTemp = convertToCelsius(temp)
print "%d Fahrenheit = %d Celsius" % (temp, convertedTemp)
def convertToFahrenheit(t):
tF = (9.0/5.0) * (t + 32)
return tF
def convertToCelsius(t):
tC = (9.0/5.0) * (t - 32)
return tC
convertedTemp = convertToFahrenheit(temp)
NameError: name 'convertToFahrenheit' is not defined
This is most likely a very simple error, but can someone please
clarify for
me why it's behaving this way?
Others have explained that you need to execute the function
definitions before Python sees the name. You can do this in
two ways depending on taste.
1) As suggested move your main code below the function definitions.
2) move your main code into a function - traditionally called main()
then call main as the last line of your code.
The second method has two advantages:
1) It maintains the top-down design style if thats your preferred
style
2) It makes it much easier to make the file into a reusable module.
It has two minor disadvantages:
1) The extra function call (main() ) slows things down by a tiny
amount
2) the extra indentation level of being inside a function reduces the
page
width slightly
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor