Ошибка в меню Python при использовании функции в качестве? - PullRequest
0 голосов
/ 08 февраля 2019

Я попытался сделать это снова, но не могу найти, в чем ошибка, помогите: C

Идея состоит в том, чтобы создать меню с помощью опции, чтобы позже использовать его снова

def Opcion():
    try:
        op = int(input("Que Ejercicio quieres hacer?\n"))
        if(op<=0):
            print("NO")
            Opcion()
        elif(op>=3):
            print("NO")
            Opcion()
    except:
            print ("Ingrese un numero del 1 al 11 plz")
            Opcion()
            pass
def menu():
        print("1. Ejercicio 1")
        print("2. Ejercicio 2")
        print("3. Ejercicio 3")

        Opcion()
        if(op==1):
            print("1. Ejercicio 1")
        if(op==2):
            print("1. Ejercicio 2")
        if(op==3):
            print("Haz salido")
menu()

используйте опцию функции для меню, это фактическая ошибка

File "prueba.py", line 49, in <module>
menu()
File "prueba.py", line 27, in menu
if(op==1):
NameError: name 'op' is not defined

1 Ответ

0 голосов
/ 08 февраля 2019

Попробуйте:

Вам необходимо вернуть параметр, если вы хотите получить его из функции.И вы можете использовать цикл «Пока» вместо продолжения вызова функции.

def Opcion():

    while 1:
        try:
            op = int(input("Que Ejercicio quieres hacer?\n"))
            if(op<=0):
                print("NO")

            elif(op>=3):
                print("NO")
            else:
                break
        except:
            print ("Ingrese un numero del 1 al 11 plz\n")

    return op
def menu():
        print("1. Ejercicio 1")
        print("2. Ejercicio 2")
        print("3. Ejercicio 3")
        op = Opcion()
        if(op==1):
            print("1. Ejercicio 1")
        if(op==2):
            print("1. Ejercicio 2")
        if(op==3):
            print("Haz salido")
menu()

Приведенный выше код продолжает запрашивать ввод данных пользователем, если они не вводят целые числа между 1-3.Не знаю, соответствует ли он желаемому результату или нет.Но надеюсь, что вы можете чему-то научиться из этого.Приветствия:)

...