This is a basic program in python that can cover between units of temperature. This was written for an article on How to use modules in Python.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | def c2f(t):
return (t*9/5.0)+32
def c2k(t):
return t+273.15
def f2c(t):
return (t-32)*5.0/9
def f2k(t):
return (t+459.67)*5.0/9
def k2c(t):
return t-273.15
def k2f(t):
return (t*9/5.0)-459.67
def get_user_input():
user_input = 0
while type(user_input) != type(1.0):
user_input = raw_input("Enter degrees to convert: ")
try:
user_input = float(user_input)
except:
print user_input + " is not a valid entry"
return user_input
def main():
menu = "\nTemperature Convertor\n\n"+\
"1. Celsius to Fahrenheit\n"+\
"2. Celsius to Kelvin\n"+\
"3. Fahrenheit to Celsius\n"+\
"4. Fahrenheit to Kelvin\n"+\
"5. Kelvin to Celsius\n"+\
"6. Kelvin to Fahrenheit\n"+\
"7. Quit"
user_input = 0
while user_input != 7:
print menu
user_input = raw_input("Please enter a valid selection: ")
try:
user_input = int(user_input)
except:
print user_input + " is not a valid selction, please try again\n"
if user_input == 1:
t = get_user_input()
print str(t) + " degree Celsius is " + str((c2f(t))) + " degree Fahrenheit"
elif user_input == 2:
t = get_user_input()
print str(t) + " degree Celsius is " + str((c2k(t))) + " degree Kelvin"
elif user_input == 3:
t = get_user_input()
print str(t) + " degree Fahrenheit is " + str((f2c(t))) + " degree Celsius"
elif user_input == 4:
t = get_user_input()
print str(t) + " degree Fahrenheit is " + str((f2K(t))) + " degree Kelvin"
elif user_input == 5:
t = get_user_input()
print str(t) + " degree Kelvin is " + str((k2c(t))) + " degree Celsius"
elif user_input == 6:
t = get_user_input()
print str(t) + " degree Kelvin is " + str((k2f(t))) + " degree Fahrenheit"
elif user_input == 7:
quit()
else:
print str(user_input) + " is not a valid selection, please try again\n"
if __name__ == "__main__":
main()
|
check the line 63..f2K 'K' will be small 'k'
With below changes,
1. you do not have to remember assignment w.r.t conversion function. For e.g. 1 for celsius to #farehnite.
2. avoid long list of if - else.
def c2f(t): o = (t*9/5.0)+32 print str(t) + " degree Celsius is " + str(o) + " degree Fahrenheit"
def c2k(t): o = t+273.15 print str(t) + " degree Celsius is " + str(o) + " degree Kelvin"
def f2c(t): o = (t-32)*5.0/9 print str(t) + " degree Fahrenheit is " + str(o) + " degree Celsius"
def f2k(t): o = (t+459.67)*5.0/9 print str(t) + " degree Fahrenheit is " + str(o) + " degree Kelvin"
def k2c(t): o = t-273.15 print str(t) + " degree Kelvin is " + str(o) + " degree Celsius"
def k2f(t): o = (t*9/5.0)-459.67 print str(t) + " degree Kelvin is " + str(o) + " degree Fahrenheit"
d = { 1 : {
'fun' : c2f, }, 2 : {
'fun' : c2k, }, 3 : {
'fun' : f2c, }, 4 : {
'fun' : f2k, }, 5 : {
'fun' : k2c, }, 6 : {
'fun' : k2f, }, }
def get_user_input():
def main():
if __name__ == "__main__": main()