这是我遇到问题的代码。我使用的是Python 3.6。
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")
当我运行代码并输入一个数字时,下面是我得到的错误:
if user_choice == room_path [1]:
NameError: name 'room_path' is not defined
发布于 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
函数。
然后,您的代码将如下所示:
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")
发布于 2018-05-28 11:56:39
我想是个小问题,
room_path=["1","2"]
它为room_path
列表定义了str
但是当你输入str
时:1
或者2
应该是匹配的
if user_choice == room_path [0]:
with [0]
是room_path
列表的第一列。
发布于 2018-05-28 14:03:06
由于您在方法和access中定义了room_path
变量,并在方法外部使用了room_path
变量,因此出现错误。
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")
https://stackoverflow.com/questions/50557518
复制相似问题