これを説明する最善の方法は、私のコードとシェルからの結果を投稿することだと思います。私はPython(3.3を使用)が初めてで、一般的にコーディングしているので、非常に単純なものが欠けていると確信しています。
これが私のコードです:
def menu():
global temp
global temp_num
temp = input('Enter a temperature to convert:\n (ex. 32F) -> ')
temp_select = temp[-1]
temp_num = int(temp[:-1])
if temp_select == 'F' or 'f':
return Fahr()
elif temp_select == 'C' or 'c':
return Cels()
elif temp_select == 'K' or 'k':
return Kelv()
else:
print('Please make a valid selection')
menu()
def Fahr():
''' Converts selected temperature from Fahrenheit to Celsius, Kelvin, or both.'''
selection = input('Convert to (C)elsius, (K)elvin, or (B)oth? -> ')
to_cels = round((5/9) * (temp_num - 32), 1)
to_kelv = round(5/9 * (temp_num - 32) + 273, 1)
if selection == 'C' or 'c':
print(temp_num, 'degrees Fahrenheit =', to_cels, 'degrees Celsius.\n')
exitapp()
elif selection == 'K' or 'k':
print(temp_num, 'degrees Fahrenheit =', to_kelv, 'degrees Kelvin.\n')
exitapp()
elif selection == 'B' or 'b':
print(temp_num, 'degrees Fahrenheit =', to_cels, 'degrees Celsius and', to_kelv, 'degrees Kelvin.\n')
exitapp()
else:
print('Please make a valid selection')
Fahr()
摂氏とケルビンには他に 2 つの機能があります。シェルでの結果に問題があることがわかります。
ここに私が得るものがあります:
Enter a temperature to convert:
(ex. 32F) -> 32C
Convert to (C)elsius, (K)elvin, or (B)oth? -> b
32 degrees Fahrenheit = 0.0 degrees Celsius.
Exit the program?
Enter "y" or "n":
必ず華氏から摂氏に変換します。毎回。