8.1 Menú - Condicionales "elif"



¿Cómo hacer un menú en Python? como una estructura simplificada y semejante a un menú de un restaurante donde cada opción puede pedirse una o varias veces. Cada opción se identifica y selecciona usando un caracter de un número entero, luego se revisa entre cada opción disponible mediante bucle while, para continuar recibiendo peticiones de opción.

menú diagrama flujo

Para crear un menú en Python, los pasos a seguir se describen como:

  • Iniciar la opción seleccionada en "0" o un valor diferente a la opción de "salida" del lazo/bucle.
  • repetir el bloque menú en un lazo/bucle mientras la opción seleccionada no sea la opción de "salida" del menú,
  • Mostrar en pantalla las opciónes del menú, y los valores que las seleccionan.
  • Preguntar o pedir una opción, entre las mostradas en pantalla.
  • Revisar la opción seleccionada entre las opciónes disponibles. Use un condicional por cada opción disponible (caso) y se realice los pasos que se requieran. En este caso también se puede llamar a una función o un procedimiento.
  • Para la opción de salida, se puede añadir un condicional y se muestran los mensajes de cierre de programa.


2. Instrucción "elif" semejante a la instrucción "case"

Para cada caso luego del primer condicional se usa "elif", que es la simplificación de condicionales anidados, es decir lo que sigue después del primer condicional es "else" y luego "if", al simplificar es "elif".

if (opcion=='1'):
    print(' **** menu opcion 01 ****')    
else:
    if (opcion=='2'):
        print(' **** menu opcion 02 ****')
    else:
        print('No existe la opcion')

Se adjunta un video tutorial con un ejemplo para administrar el alquiler de un bloque de casilleros de 6 filas y 10 columnas.

Ejercicio: 3Eva2009TII_T2 Registrar alquiler de casilleros

Solución Propuesta: s3Eva2009TII_T2 Registrar alquiler de casilleros



3. Estructura básica de instrucciones en Python

Note que los valores de opción de selección son tipo caracteres, por lo que también se puede usar letras para cada caso.

# Ejemplo de un menu
# las opciones se proponen por caracteres
# propuesta: edelros@espol.edu.ec

# menu
opcion = '0'
while not(opcion=='9'):
    print(' 1. menu opcion 01')
    print(' 2. menu opcion 02')
    print(' 3. menu opcion 03')
    print(' 4. menu opcion 04')
    print(' 5. menu opcion 05')
    print(' 9. Salir')

    opcion=input('  --- ¿Cuál opcion?: ')
    
    if (opcion=='1'):
        print(' **** menu opcion 01 ****')
        
    elif (opcion=='2'):
        print(' **** menu opcion 02 ****')
        
    elif (opcion=='3'):
        print(' **** menu opcion 03 ****')
        
    elif (opcion=='4'):
        print(' **** menu opcion 04 ****')
        
    elif (opcion=='5'):
        print(' **** menu opcion 05 ****')
                
    elif (opcion=='9'):
        print(' **** Saliendo del menu  ****')
        print(' **** Ejemplo de un menu ****')
    else:
        print('No existe la opcion en el menu')

Al final, se añade un "else", en el que se añaden instrucciones para el caso que ninguno de los casos anteriores se cumplió. Se muestra un mensaje como 'No existe la opción en el menú' y el lazo vuelve a iniciar.

Ejemplos de ejercicios desarrollados y otros ejercicios se presentan en la siguiente sección.



4. Ejemplos de menú con Python

3Eva2009TII_T2 Registrar alquiler de casilleros

Solución propuesta: s3Eva2009TII_T2 Registrar alquiler de casilleros

2Eva2009TII_T3 Controlar saldos prepago

Solución propuesta: s2Eva2009TII_T3 Controlar saldos prepago

2Eva2015TII_T4 biciespol, prestamos de bicicletas

Solución propuesta: s2Eva2015TII_T4 biciespol, prestamos de bicicletas

2Eva2006TI_T1 Donaciones defensa civil

Solución propuesta: s2Eva2006TI_T1 Donaciones defensa civil

3Eva2015TII_T1 Mensajes en redes sociales y etiquetas

Solución propuesta: s3Eva2015TII_T1 Mensajes en redes sociales y etiquetas

3Eva2015TII_T2 Gestionar mensajes con etiquetas

Solución propuesta: s3Eva2015TII_T2 Gestionar mensajes con etiquetas

1Eva2002TII_T1a Crea tablas de multiplicar con strings del 1 a n

Solución propuesta: s1Eva2002TII_T1a Crea tablas de multiplicar con strings del 1 a n


Ejercicios por desarrollar

3Eva2013TII_T4 Gestionar asientos en cine

3Eva2013TI_T3 Menú de consejerías académicas

3Eva2003TIII_T2 Socios del club por género




Unidades FP