问题描述
我想获取“ weight”的值并将其乘以.38,本质上将其分配给名为x的变量。但是,执行说
”第12行,在 打印(“在火星上,您将称量“ + x +”磅。\ n“ NameError:名称“ x”未定义”
我该怎么办?
def weight_for_binky(x):
#asking for weight
weight = int(input("What do you weigh? "))
#binky weight
x = (weight * 0.38)
print("you weigh " + x + " pounds. \n")
if __name__ == '__main__':
weight_for_binky(x)
出于隐私目的更改了变量名
解决方法
如果出现问题,您的代码中有数字
- 您的函数具有
x
参数,但从未在计算中使用它。相反,您将计算结果分配给x
-
x
在函数的本地范围内,当您尝试打印它时在函数外部不可用
尝试调用函数- - x
- 缩进是错误的,这可能是您发布代码时格式不正确的结果。
weight_for_binky(x)
时,仍未定义 def weight_for_binky(weight):
return weight * 0.38
if __name__ == '__main__':
weight = int(input("What do you weight? "))
print(f"you weight {weight_for_binky(weight)} pounds.")
,
您的问题是x是在函数内部定义的,因此无法在函数外部访问。您要么必须编写这样的代码:
def weight_for_binky(x):
#asking for weight
weight = int(input("What do you weigh? "))
#binky weight
x = (weight * 0.38)
print("you weigh " + str(x) + " pounds. \n")
if __name__ == '__main__':
weight_for_binky(x)
或类似这样:
def weight_for_binky(x):
#asking for weight
weight = int(input("What do you weigh? "))
#binky weight
x = (weight * 0.38)
return x
if __name__ == '__main__':
print("you weigh " + str(weight_for_binky(x)) + " pounds. \n"))
,
我是Python迷,这是我的解决方案:
def weight_for_binky(x):
weight = float(input("What do you weigh? "))
x = (weight * 0.38)
return f'you weigh {x} pounds. \n'
weight = weight_for_binky(x=1)
print(weight)
if __name__ == '__main__':
weight
我建议使用float
函数,因为用户可能输入20.5(我的公制单位不是磅,所以数字不是实数),您的程序会返回错误。
此外,您还应该在函数中缩进print
语句。
在Python中,您没有用于定义代码块的方括号,因此使用正确的缩进非常重要。
同样在这种情况下,将变量x
传递给函数,它是毫无用处的*(在您的情况下,x尚未定义)*,您可以这样做:
def weight_for_binky():
#asking for weight
weight = int(input("What do you weigh? "))
#binky weight
return (weight * 0.38)
if __name__ == '__main__':
x = weight_for_binky()
print("you weigh " + str(x) + " pounds. \n")