Python

Cómo hacer un menu en python

Cómo hacer un menu en python
481Vistas

Python es un lenguaje de programación versátil que se utiliza en una amplia variedad de campos, desde la inteligencia artificial hasta la ciencia de datos.

Una de las fortalezas de Python es su capacidad para crear programas interactivos y amigables para el usuario.

En este artículo, aprenderemos cómo hacer un menú en Python, una herramienta útil para crear una interfaz fácil de usar para tus programas.

 ¿Qué es un menú en Python y por qué es importante?

Antes de adentrarnos en los detalles de cómo hacer un menú en Python, es importante entender qué es y por qué es importante en la programación.

Un menú en Python es una lista de opciones que se presentan al usuario para que pueda interactuar con el programa y seleccionar la acción que desea realizar. Esto ayuda a hacer que el programa sea más intuitivo y fácil de usar, y permite al usuario personalizar y controlar su experiencia.

Creando un menú simple en Python

Antes de construir un menú completo y complejo en Python, es importante tener una comprensión básica del lenguaje y su sintaxis. Si eres nuevo en la programación de Python, te recomendamos revisar algunos tutoriales y cursos en línea para familiarizarte con el lenguaje.

Para crear un menú simple en Python, necesitamos utilizar algunas funciones y módulos específicos. En este caso, utilizaremos la función `input()` y el módulo `sys` para escribir un programa que solicite al usuario que elija entre dos opciones: «Sumar» o «Restar».

Luego, el programa realizará la operación seleccionada por el usuario y mostrará el resultado.

Para comenzar, importemos el módulo `sys` para poder utilizar su función `exit()` más adelante en nuestro código:

import sys

A continuación, definimos un bucle `while` que se ejecutará hasta que el usuario ingrese una opción válida:

while True:

Dentro del bucle, imprimimos las opciones disponibles para el usuario utilizando la función `print()`:

print(«1. Sumar»)

print(«2. Restar»)

Luego, le pedimos al usuario que ingrese su elección y almacenamos su entrada en una variable llamada `opcion` utilizando la función `input()`:

opcion = input(«Elige una opción: «)

A continuación, creamos una estructura condicional `if` que evaluará la opción seleccionada por el usuario y realizará la acción correspondiente utilizando las funciones `int()` y `input()` para convertir la entrada del usuario en un número y realizar la operación adecuada:

 

if opcion == "1":

x = int(input("Ingresa el primer número: "))

y = int(input("Ingresa el segundo número: "))

resultado = x + y

print("El resultado es", resultado)

elif opcion == "2":

x = int(input("Ingresa el primer número: "))

y = int(input("Ingresa el segundo número: "))

resultado = x - y

print("El resultado es", resultado)

else:

print("Opción inválida. Por favor, elige entre 1 o 2.")

Finalmente, utilizamos la función `exit()` para finalizar el programa después de que se haya ejecutado la acción seleccionada por el usuario:

exit()

Si ejecutas este código en tu editor de Python, deberías poder ver un mensaje de error cuando el programa se cierra manualmente.

Esto se debe a que no hemos agregado una opción para que el usuario salga del programa de manera limpia. Puedes solucionarlo fácilmente agregando una opción adicional en el menú que active la función `exit()`.

 Mejorando nuestro menú con funciones y bucles

Si bien el código anterior cumple con su función y permite al usuario realizar la operación deseada, se vuelve repetitivo y poco práctico si quieres agregar más opciones. Para solucionar esto, podemos implementar funciones y bucles en nuestro código para hacerlo más eficiente y escalable.

Primero, crearemos una función llamada `menu()` que imprimirá nuestras opciones y solicitará la entrada del usuario:

 

def menu():

print("1. Sumar")

print("2. Restar")

opcion = input("Elige una opción: ")

return opcion

A continuación, crearemos una función llamada `operacion()`, que realizará las operaciones y mostrará el resultado al usuario. Utilizaremos una estructura de decisión `switch` para evaluar la opción seleccionada y realizar la operación correspondiente:

 

def operacion(opcion):

x = int(input("Ingresa el primer número: "))

y = int(input("Ingresa el segundo número: "))

switch(opcion):

case "1":

resultado = x + y

print("El resultado es", resultado

exit()

case "2":

resultado = x - y

print("El resultado es", resultado)

exit()

default:

print("Opción inválida. Por favor, elige entre 1 o 2.")

exit()

Finalmente, utilizaremos un bucle `while` para ejecutar nuestro menú de forma continua hasta que el usuario elija la opción para salir.

 

while True:

opcion = menu()

operacion(opcion)

Con este código mejorado, podemos agregar tantas opciones como queramos sin tener que repetir el mismo código una y otra vez. Además, si deseamos realizar cambios en el futuro, solo tendremos que modificar una sección de código en lugar de varias.

Agregando un menú hamburguesa al estilo de HTML y CSS

Ahora que hemos aprendido cómo hacer un menú en Python, ¿qué pasa si queremos agregarlo a un programa más complejo que tenga una interfaz visual?

Aquí es donde entra en juego un menú tipo hamburguesa, una opción popular en el diseño web que permite a los usuarios acceder a diferentes opciones y se oculta cuando no es necesario.

Para agregar un menú hamburguesa en Python, necesitaremos utilizar un módulo específico llamado `tkinter` que permite crear interfaces gráficas de usuario.

Si no tienes este módulo instalado, puedes hacerlo fácilmente utilizando el comando `pip install tkinter` en tu terminal.

A continuación, crearemos un programa que genere una ventana con un menú hamburguesa y algunas opciones. Puedes ver el código completo en el siguiente enlace: [https://github.com/ivanlopez10/python-hamburger-menu](https://github.com/ivanlopez10/python-hamburger-menu)

Primero, importaremos el módulo `tkinter` y crearemos una ventana para nuestro menú hamburguesa:

 

import tkinter as tk

ventana = tk.Tk()

 

A continuación, crearemos una función llamada `show_menu()` que mostrará nuestro menú cuando se active y otra llamada `hide_menu()` que lo ocultará.

 

def show_menu():

menu.place(x=0, y=0)

def hide_menu():

menu.place_forget()

 

Después de crear estas funciones, debemos crear los elementos que conforman nuestro menú. En este caso, utilizaremos etiquetas y botones para agregar nuestras opciones y un botón de menú que activará y desactivará nuestro menú.

 

etiqueta = tk.Label(ventana, text="Menú")

boton1 = tk.Button(ventana, text="Opción 1")

boton2 = tk.Button(ventana, text="Opción 2")

boton_menu = tk.Button(ventana, text="≡", command=show_menu)

 

Observa cómo utilizamos la función `command` para llamar a la función `show_menu()` cuando se hace clic en el botón de menú.

Finalmente, utilizaremos el método `grid()` para ajustar y mostrar nuestros elementos en la ventana y ejecutaremos el bucle principal del programa con el método `mainloop()`.

 

etiqueta.grid(row=0, column=1)

boton1.grid(row=1, column=1)

boton2.grid(row=2, column=1)

boton_menu.grid(row=0, column=0)

ventana.mainloop()

 

Ahora, cuando ejecutes este programa, deberías ver una ventana con una opción de menú en forma de botón que, al hacer clic, mostrará las opciones de nuestro menú hamburguesa. Puedes personalizar el diseño y las opciones según tus preferencias y necesidades.

Comentarios finales

En este artículo, hemos aprendido cómo hacer un menú en Python utilizando diferentes herramientas y técnicas, desde funciones y bucles hasta módulos para interfaces gráficas. Un menú en Python puede ser una herramienta útil para mejorar la usabilidad y la interacción con tus programas, y es importante tener en cuenta su diseño y funcionalidad para crear una mejor experiencia de usuario.

Desde un menú simple para seleccionar acciones hasta un menú hamburguesa más complejo para una interfaz gráfica, hay muchas formas de implementar y personalizar un menú en Python según tus necesidades.

Continúa practicando y experimentando con diferentes opciones para mejorar tus habilidades de programación en Python. ¡Buena suerte!

Deja una respuesta