При вызове моей функции это не работает? - PullRequest
0 голосов
/ 28 декабря 2018

Я беру информатику для 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.")

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Как уже упоминали Роберт и Паритош, 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
0 голосов
/ 28 декабря 2018

Вам просто нужно вернуть выбранную опцию и сохранить возвращенное значение в вашем основном коде:

##### 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 голосов
/ 28 декабря 2018

Вы не определили 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.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...