我正在参加GCSE的计算机科学,我们有一个项目到期,但我似乎无法弄清楚如何工作。它告诉我“NameError:name'option1'未定义”,即使我定义它,它似乎也不起作用。如果您可以查看下面的代码并告诉我如何解决问题,解释它如何以及为什么不起作用,我将非常感激!谢谢! (现在请忽略注册表和排行榜功能,我会自己解决这个问题,我理解登录功能应该如何工作。)
##### login, register or see the leaderboard.
def option():
option1 = int(input("""Would you like to:
1. Login
2. Register
3. See the Leaderboard"""))
##### MAIN CODE
while choice == True:
option()
if option1 == 1:
login()
choice = False
elif option1 == 2:
register()
choice = False
elif option1 == 3:
leaderboardopen()
choice = False
else:
print("Incorrect value given. Please try again.")
正如罗伯特和帕里托什上面提到的那样,option1
不存在于option
函数之外。我可以建议以下解决方案:
def option():
return int(input("Would you like to:"))
##### MAIN CODE
while choice == True:
option1 = option()
if option1 == 1:
login()
# continue your logic
您只需返回所选选项并捕获主代码中的返回值:
##### login, register or see the leaderboard.
def option():
option1 = int(input("""Would you like to:
1. Login
2. Register
3. See the Leaderboard"""))
return option1
##### MAIN CODE
choice = True
while choice == True:
option1 = option()
if option1 == 1:
login()
choice = False
elif option1 == 2:
register()
choice = False
elif option1 == 3:
leaderboardopen()
choice = False
else:
print("Incorrect value given. Please try again.")
你还没有定义choice
。你也在一个函数中声明option1
,所以当你没有定义它时,你没有定义。试试这个,你需要从函数中返回一些东西。
##### login, register or see the leaderboard.
choice = True
def option():
option = int(input("""Would you like to:
1. Login
2. Register
3. See the Leaderboard"""))
return option
##### MAIN CODE
while choice == True:
option = option()
if option == 1:
login()
choice = False
elif option == 2:
register()
choice = False
elif option == 3:
leaderboardopen()
choice = False
else:
print("Incorrect value given. Please try again.")