Python - Opción no valida en menú de opciones.

 
Vista:
sin imagen de perfil

Opción no valida en menú de opciones.

Publicado por DFB (2 intervenciones) el 04/08/2021 19:54:26
Hola!
He estado desarrollando un menú de opciones para un recetario en Python, pero he encontrado un problema: Cuando el usuario digita un valor distinto a los de las opciones, no sé como hacer para que el programa le indique al usuario que hay un error y le vuelva a pedir que ingrese el valor.

Ejemplo:
Cuando el programa pide elegir un grupo alimenticio, y el usuario ingresa un valor distinto de 1 o 2, se finaliza el programa con "Exit code 0".
En vez de esto quiero saber como lograr que el programa muestre en pantalla "Error" y le pida al usuario que vuelva a ingresar su grupo alimenticio.

Adjunto el código y agradezco cualquier idea o ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
print('Bienvenido a FITGREENMIND, el recetario cotidiano con opciones saludables y sencillas. ')
print('Elija su grupo alimenticio: ')
 
tyalim = ga = (input("\n1.Omnívoro.\n2.Vegano.\n\nDigite el número corresponiente a su grupo: "))
 
#Inicio menú de datos.
#Recetario Omnívoro.
if tyalim == ("1"):
    print('Usted ha elegido el recetario Omnívoro: ')
    print('Elija el grupo macro del cual tiene un ingrediente disponible:')
    macro = input("\n1.Carbohidratos.\n2.Proteínas.\n3.Grasas.\n\nDigite el número correspondiente: ")
 
    if macro == ("1"):
        print('Elija su ingrediente (Carbohidrato) disponible: ')
        com = input("\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca\n5.Fríjoles\n6.Lentejas\n7.Garbanzos\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro2 = input("\n1.Proteínas.\n2.Grasas.\n\nDigite el número correspondiente: ")
        if macro2 == ("1"):
            print('Elija su ingrediente (Proteína) disponible: ')
            pom = input(
                "\n1.Carne de res.\n2.Carne de cerdo.\n3.Pollo.\n4.Pescado.\n5.Huevo.\n\nDigite el número correspondiente: ")
            if pom == ("1"):
                print('Elija el tipo de carne de res: ')
                pomcr = input("\n1.Filete.\n2.Carne molida.\n\nDigite el número correspondiente: ")
 
            if pom == ("4"):
                print('Elija su tipo de pescado: ')
                pompe = input(
                    "\n1.Mojarra.\n2.Trucha.\n3.Tilapia.\n4.Salmón.\n5.Atún.\n\nDigite el número correspondiente: ")
 
            if macro2 == ("2"):
                print('Elija su ingrediente (Grasa) disponible: ')
                gom = input(
                    "\n1.Aceite.\n2.AOVE.\n3.Mantequilla.\n4.Aguacate.\n5.Panceta.\n\nDigite el número correspondiente: ")
 
    if macro == ("2"):
        print('Elija su ingrediente (Proteína) disponible: ')
        pom = input("\n1.Carne de res.\n2.Carne de cerdo.\n3.Pollo.\n4.Pescado.\n5.Huevo.\n\nDigite el número correspondiente: ")
        if pom == ("1"):
            print('Elija el tipo de carne de res: ')
            pomcr = input("\n1.Filete.\n2.Carne molida.\n\nDigite el número correspondiente: ")
 
        if pom == ("4"):
            print('Elija su tipo de pescado: ')
            pompe = input("\n1.Mojarra.\n2.Trucha.\n3.Tilapia.\n4.Salmón.\n5.Atún.\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro3 = input("\n1.Carbohidrato.\n2.Grasas.\n\nDigite el número correspondiente: ")
        if macro3 == ("1"):
            print('Elija su ingrediente (Carbohidrato) disponible: ')
            com = input(
                "\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca\n5.Fríjoles\n6.Lentejas\n7.Garbanzos\n\nDigite el número correspondiente: ")
 
        if macro3 == ("2"):
            print('Elija su ingrediente (Grasa) disponible: ')
            gom = input(
                "\n1.Aceite.\n2.AOVE.\n3.Mantequilla.\n4.Aguacate.\n5.Panceta.\n\nDigite el número correspondiente: ")
 
    if macro == ("3"):
        print('Elija su ingrediente (Grasa) disponible: ')
        gom = input("\n1.Aceite.\n2.AOVE.\n3.Mantequilla.\n4.Aguacate.\n5.Panceta.\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro4 = input("\n1.Carbohidrato.\n2.Proteínas.\n\nDigite el número correspondiente: ")
        if macro4 == ("1"):
            print('Elija su ingrediente (Carbohidrato) disponible: ')
            com = input(
                "\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca\n5.Fríjoles\n6.Lentejas\n7.Garbanzos\n\nDigite el número correspondiente: ")
        if macro4 == ("2"):
            print('Elija su ingrediente (Proteína) disponible: ')
            pom = input(
                "\n1.Carne de res.\n2.Carne de cerdo.\n3.Pollo.\n4.Pescado.\n5.Huevo.\n\nDigite el número correspondiente: ")
            if pom == ("1"):
                print('Elija el tipo de carne de res: ')
                pomcr = input("\n1.Filete.\n2.Carne molida.\n\nDigite el número correspondiente: ")
 
            if pom == ("4"):
                print('Elija su tipo de pescado: ')
                pompe = input(
                    "\n1.Mojarra.\n2.Trucha.\n3.Tilapia.\n4.Salmón.\n5.Atún.\n\nDigite el número correspondiente: ")
 
 
#Recetario Vegano.
if tyalim == ("2"):
    print('Usted ha elegido el recetario Vegano: ')
    print('Elija el grupo macro del cual tiene un ingrediente disponible:')
    macro = input("\n1.Carbohidratos.\n2.Proteínas.\n3.Grasas.\n\nDigite el número correspondiente: ")
 
    if macro == ("1"):
        print('Elija su ingrediente (Carbohidrato) disponible: ')
        cve = input("\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca.\n5.Pan vegano.\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro2 = input("\n1.Proteínas.\n2.Grasas.\n\nDigite el número correspondiente: ")
        if macro2 == ("1"):
            print('Elija su ingrediente (Proteína) disponible: ')
            pve = input("\n1.Fríjoles.\n2.Lentejas.\n3.Garbanzos.\n4.Tofu.\n5.Seitán.\n6.Soya texturizada.\n\nDigite el número correspondiente: ")
            if pve == ("6"):
                print('Elija el tipo de soya texturizada: ')
                pvest = input("\n1.Carve.\n2.Hamburguesa Vegetal.\n\nDigite el número correspondiente: ")
 
        if macro2 == ("2"):
            print('Elija su ingrediente (Grasa) disponible: ')
            gve = input("\n1.Aceite.\n2.AOVE.\n3.Mantequilla vegetal.\n4.Aguacate.\n\nDigite el número correspondiente: ")
 
    if macro == ("2"):
        print('Elija su ingrediente (Proteína) disponible: ')
        pve = input("\n1.Fríjoles.\n2.Lentejas.\n3.Garbanzos.\n4.Tofu.\n5.Seitán.\n6.Soya texturizada.\n\nDigite el número correspondiente: ")
        if pve == ("6"):
            print('Elija el tipo de soya texturizada: ')
            pvest = input("\n1.Carve.\n2.Hamburguesa Vegetal.\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro3 = input("\n1.Carbohidrato.\n2.Grasas.\n\nDigite el número correspondiente: ")
        if macro3 == ("1"):
            print('Elija su ingrediente (Carbohidrato) disponible: ')
            com = input(
                    "\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca.\n5.Pan vegano.\n\nDigite el número correspondiente: ")
 
        if macro3 == ("2"):
            print('Elija su ingrediente (Grasa) disponible: ')
            gom = input("\n1.Aceite.\n2.AOVE.\n3.Mantequilla vegetal.\n4.Aguacate.\n\nDigite el número correspondiente: ")
 
 
    if macro == ("3"):
        print('Elija su ingrediente (Grasa) disponible: ')
        gve = input("\n1.Aceite.\n2.AOVE.\n3.Mantequilla vegetal.\n4.Aguacate.\n\nDigite el número correspondiente: ")
 
        print('Elija el segundo grupo macro del cual tiene un ingrediente disponible:')
        macro4 = input("\n1.Carbohidrato.\n2.Proteínas.\n\nDigite el número correspondiente: ")
        if macro4 == ("1"):
            print('Elija su ingrediente (Carbohidrato) disponible: ')
            cve = input( "\n1.Arroz.\n2.Pasta.\n3.Papa\n4.Yuca\n5.Pan vegano.\n\nDigite el número correspondiente: ")
        if macro4 == ("2"):
            print('Elija su ingrediente (Proteína) disponible: ')
            pve = input(
                "\n1.Fríjoles.\n2.Lentejas.\n3.Garbanzos.\n4.Tofu.\n5.Seitán.\n6.Soya texturizada.\n\nDigite el número correspondiente: ")
            if pve == ("6"):
                print('Elija el tipo de soya texturizada: ')
                pvest = input("\n1.Carve.\n2.Hamburguesa Vegetal.\n\nDigite el número correspondiente: ")
#Fin menú de datos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Opción no valida en menú de opciones.

Publicado por algoritmo (245 intervenciones) el 05/08/2021 12:28:37
Hola

Yo haría un esquema basado en:

1
2
3
4
5
6
7
8
9
while True:
    valor = input('Escriba valor')
    if valor == 1:
        print('Ha escrito 1')
    elif valor == 2:
        print('Ha escrito 2')
    elif valor == 0:
        print('Nos salimos')
        break

Espero que te sirva :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar