python调用函数出现未定义_为什么我的python程序给出了if / else语句中的变量未定义的错误?...

一位初学者分享了他们在Python中尝试编写一个函数,实现温度(F/C/K)和距离(inch/ft/yd/mi)转换的代码,但遇到NameError,寻求如何通过if-elif-else正确调用相应函数。博客详细描述了问题及求助过程。
摘要由CSDN通过智能技术生成

我正在尝试用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的新手,所以我完全有可能无法建立更有经验的人可以建立的联系。我在这里收到的答案对我有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值