我正在尝试用Python编写一个代码,将一个单元的温度和距离转换成另一个单元。我被告知我需要使用函数,用户将输入F(华氏度),C(摄氏度)或K(开尔文),温度将从他们选择的任何值转换为F,C或K.所以我为每个场景编写了一个函数。如果它是从F转换的另一个函数,如果它是从C转换的另一个函数,另一个是从K转换的函数。我也为英寸,英尺,码,英里做了这个。
所以在我编写完所有函数后,我写了一个if,elif和else语句,我想根据用户输入的内容调用每个函数。因此,如果用户输入“F”,我希望它调用convert_from_F()函数,或者如果他们输入“K”我希望它使用convert_from_K(),或者如果用户键入“inch”,我希望它使用convert_from_inch()函数。我认为这样做的方法是使用if,elif和else语句。但是,无论我输入什么,我总是会收到错误消息:
NameError:未定义名称“F”
如果发现用户没有输入该特定指令,我会认为迭代会继续超过每个语句。如果我(作为用户)放'F',它也不起作用 我不知道如何修复此代码。我错过了什么?
另外,我正在使用在线python 3编译器来编写我的程序:OnlineGDBdef convert_from_F():
F = float(input("Please input the temperature in F: "))
print("Temperature in F is", F)
print("Temperature in C is", (F-32)*5/9)
print("Temperature in K is", (F-32)*5/9 + 273.15)
def convert_from_C():
C = float(input("Please input the temperature in C: "))
print("Temperature in F is", (C*9/5) + 32)
print("Temperature in C is", C)
print("Temperature in K is", C+273.15)
def convert_from_K():
K = float(input("Please input the temperature in K: "))
print("Temperature in F is", (K-273.15)*9/5 + 32)
print("Temperature in C is", K-273.15)
print("Temperature in K is", K)
def convert_from_inch():
inch = float(input("Please input the distance in inches: "))
print("Distance in inches is:", inch)
print("Distance in feet is:", inch/12)
print("Distance in yards is:", inch/36)
print("Distance in miles is:", inch/63360)
def convert_from_ft():
ft = float(input("Please input the distance in feet: "))
print("Distance in inches is:", ft*12)
print("Distance in feet is:", ft)
print("Distance in yards is:", ft/3)
print("Distance in miles is:", ft/5280)
def convert_from_yd():
yd = float(input("Please input the distance in yards: "))
print("Distance in inches is:", yd*36)
print("Distance in feet is:", yd*3)
print("Distance in yards is:", yd)
print("Distance in miles is:", yd*1760)
def convert_from_mi():
mi = float(input("Please input the distance in miles: "))
print("Distance in inches is:", mi*63360)
print("Distance in feet is:", mi*5280)
print("Distance in yards is:", mi*1760)
print("Distance in miles is:", mi)
print("To convert distance input inch, ft, yd, or mi. To convert \
temperatures please input F, C, or K. ")
user_input = input("Your input: ")
def user_conversion():
if user_input == F or f:
convert_from_F()
elif user_input == C or c:
convert_from_C()
elif user_input == K or k:
convert_from_K()
elif user_input == inch:
convert_from_inch()
elif user_input == ft:
convert_from_ft
elif user_input == yd:
convert_from_yd()
elif user_input == mi:
convert_from_mi()
else:
print("Invalid input.")
print(user_conversion())
编辑:我看到这被标记为可能重复。重复的问题对我没有帮助,我没有尝试将其变成一组,我试图找出如何使if语句运行。为我的问题提供的解决方案与其他问题的解决方案不同。但是,我是Python的新手,所以我完全有可能无法建立更有经验的人可以建立的联系。我在这里收到的答案对我有帮助。