首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在获取"NameError:未定义名称'room_path‘“

正在获取"NameError:未定义名称'room_path‘“
EN

Stack Overflow用户
提问于 2018-05-28 07:47:54
回答 3查看 353关注 0票数 0

这是我遇到问题的代码。我使用的是Python 3.6。

代码语言:javascript
复制
def room():
    room_path=["1","2"]
    user_choice = ""

print ("If you decide to ditch Todd and go to the campfire alone, enter 1")
print ("If you decide to drag Todd with you to the campfire, enter 2")
user_choice = input("your option number")

if user_choice == room_path [1]:
    print ("yes")
elif user_choice == room_path [2]:
    print ("no")

当我运行代码并输入一个数字时,下面是我得到的错误:

代码语言:javascript
复制
    if user_choice == room_path [1]:
NameError: name 'room_path' is not defined
EN

回答 3

Stack Overflow用户

发布于 2018-05-28 07:52:13

出现此错误的原因是,在room函数的作用域内声明了名称room_path,因此无法从该函数外部调用它。

这里有一个很好的链接,解释了Python中变量的作用域:

http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html

要解决这个问题,您可以在room函数外部声明room_path,您可能还希望对user_choice执行此操作,并完全删除room函数。

然后,您的代码将如下所示:

代码语言:javascript
复制
room_path=["1","2"]
user_choice = ""

print ("If you decide to ditch Todd and go to the campfire alone, enter 1")
print ("If you decide to drag Todd with you to the campfire, enter 2")
user_choice = input("your option number")

if user_choice == room_path [1]:
    print ("yes")
elif user_choice == room_path [2]:
    print ("no")
票数 1
EN

Stack Overflow用户

发布于 2018-05-28 11:56:39

我想是个小问题,

代码语言:javascript
复制
room_path=["1","2"]

它为room_path列表定义了str

但是当你输入str时:1或者2应该是匹配的

代码语言:javascript
复制
if user_choice == room_path [0]:

with [0]room_path列表的第一列。

票数 0
EN

Stack Overflow用户

发布于 2018-05-28 14:03:06

由于您在方法和access中定义了room_path变量,并在方法外部使用了room_path变量,因此出现错误。

代码语言:javascript
复制
def room():
    room_path=["1","2"]
    user_choice = ""

    print ("If you decide to ditch Todd and go to the campfire alone, enter 1")  
    print ("If you decide to drag Todd with you to the campfire, enter 2")
    user_choice = input("your option number")

    if user_choice == room_path [1]:
        print ("yes")
    elif user_choice == room_path [2]:
        print ("no")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50557518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档