考虑以下代码(运行此代码时收到名称错误)
item = input("What food???")
def itemcheck():
if item == "chex":
cereal = "Yummy"
else:
cereal = "Yuck!"
itemcheck()
print(cereal)
未定义名称为“谷物”的错误。我犯了什么错误/如何解决?在自己的函数中定义变量的正确方法是什么?
答案 0 :(得分:1)
您的代码应更加优化。您可以尝试以下方法:
def itemcheck():
if item == "chex":
return "Yummy"
else:
return "Yuck!"
item = input("What food???")
cereal = itemcheck()
print(cereal)
您要在函数内部而不是在全局范围内定义cereal
。这就是为什么您无法在函数外部访问cereal
。
答案 1 :(得分:1)
在函数内部定义的变量是该函数的局部变量。但是,如果将其声明为全局变量,则可以在函数外部访问它。
item = input("What food???")
def itemcheck():
global cereal
if item == "chex":
cereal = "Yummy"
else:
cereal = "Yuck!"
itemcheck()
print(cereal)
。
您可以创建一个return语句,该语句指定要传递回调用该函数的代码的值。
item = input("What food???")
def itemcheck():
if item == "chex":
return "Yummy"
else:
return "Yuck!"
print(itemcheck())
答案 2 :(得分:0)
item = input("What food???")
def itemcheck():
if item == "chex":
cereal = "Yummy"
else:
cereal = "Yuck!"
return cereal
cereal = itemcheck()
print(cereal)
您没有从函数中返回谷物。由于谷物是在函数中声明的,除非您从函数中返回它,否则在函数完成调用后它就不存在。因此,您需要在函数退出之前将其返回。
答案 3 :(得分:0)
def itemcheck():
item = input("What food???")
cereal = item
if item == "chex":
cereal = "Yummy"
else:
cereal = "Yuck!"
print(cereal)
itemcheck()