在调用我的函数时,它不起作用?

问题描述 投票:0回答:3

我正在参加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.")
python function
3个回答
0
投票

正如罗伯特和帕里托什上面提到的那样,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

1
投票

您只需返回所选选项并捕获主代码中的返回值:

##### 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.")

0
投票

你还没有定义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.")
© www.soinside.com 2019 - 2024. All rights reserved.