Python AttributeError:“函数”对象没有属性“w”
我正在为我的编程入门课程制作一个BMI计算器,我正在努力学习如何使用模块。我试图实现一个系统,用户只允许输入整数 我没怎么试过,也没能找到一个简单的答案,所以我来了Python AttributeError:“函数”对象没有属性“w”,python,module,undefined,Python,Module,Undefined,我正在为我的编程入门课程制作一个BMI计算器,我正在努力学习如何使用模块。我试图实现一个系统,用户只允许输入整数 我没怎么试过,也没能找到一个简单的答案,所以我来了 def Run(): bmi = ((int(valcheckw.w) * 703)/(int(valcheckh.h)*int(valcheckh.h)) def valcheckw(): w = (input('weight(Lbs):')) try: val0 = int(w)
def Run():
bmi = ((int(valcheckw.w) * 703)/(int(valcheckh.h)*int(valcheckh.h))
def valcheckw():
w = (input('weight(Lbs):'))
try:
val0 = int(w)
except ValueError:
print("That's not an int!")
del w
valcheckw()
def valcheckh():
h = (input('height in inches'))
try:
val = int(h)
except ValueError:
print("That's not an int!")
del h
valcheckh()
valcheckw()
valcheckh()
Run()
在运行中,我希望它只是从各自的模块中提取变量w和h,但是我得到一个错误,说它们没有定义 您需要返回两个函数valcheckw和valcheckh的结果val0和val1,以便在run函数中访问它们 您还需要确定输入数据实际上是否是数字或其他类型。您可以为此使用float函数 下面的内容可能有助于您对如何正确实现所需结果进行建模:
#!/usr/bin/env python3
def valcheckw():
w=input('weight(lbs): ')
try:
val0=float(w)
return val0
except ValueError:
print('That\'s not a number!')
valcheckw()
def valcheckh():
h=input('height(in): ')
try:
val1=float(h)
return val1
except ValueError:
print('That\'s not a number!')
valcheckh()
def run():
weight=valcheckw()
height=valcheckh()
bmi=float(weight * 703/float(height*height))
print(bmi)
### main ###
run()
这里只有一个具有多个功能的模块。像w这样的变量是这些函数的局部变量,它们不是这些函数的属性。此外,del语句也不起任何作用。当函数终止时,局部变量就不存在了。我没有否决投票,但是这段代码是不正确的,并且没有解决基本的混淆问题。