为了账号安全,请及时绑定邮箱和手机立即绑定

在定义的函数中定义变量时出错(Python)

在定义的函数中定义变量时出错(Python)

婷婷同学_ 2021-06-07 16:49:39
考虑以下代码(我在运行时收到名称错误)item = input("What food???")def itemcheck():    if item == "chex":        cereal = "Yummy"    else:        cereal = "Yuck!"itemcheck()print(cereal)错误是未定义名称“谷物”。我犯了什么错误/我该如何解决?在您自己的函数中定义变量的正确方法是什么?
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您的代码应该更加优化。你可以试试这个:


def itemcheck():

    if item == "chex":

        return "Yummy"

    else:

        return "Yuck!"

item = input("What food???")

cereal = itemcheck()

print(cereal)

您在cereal函数内部定义,而不是在全局范围内定义。这就是您无法cereal在函数之外访问的原因。


查看完整回答
反对 回复 2021-06-22
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

使用全局变量

在函数内部定义的变量是该函数的局部变量。但是,如果将其声明为全局变量,则可以在函数外部访问它。


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())


查看完整回答
反对 回复 2021-06-22
?
LEATH

TA贡献1936条经验 获得超6个赞

item = input("What food???")

def itemcheck():

    if item == "chex":

        cereal = "Yummy"

    else:

        cereal = "Yuck!"

    return cereal


cereal = itemcheck()

print(cereal)

您没有从函数中返回谷物。由于在函数中声明了谷物,除非您从函数中返回它,否则在函数完成调用后它不存在。所以你需要在函数退出之前返回它。


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 272 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信