Código de Python - Ejemplo de implementar un menu en python en la consola

Requerimientos

Versiones para Python 2.7 y Python 3.x

Python 2.x
estrellaestrellaestrellaestrellaestrella(6)

Actualizado el 21 de Enero del 2017 (Publicado el 5 de Diciembre del 2014)gráfica de visualizaciones de la versión: Python 2.x
21.405 visualizaciones desde el 5 de Diciembre del 2014

Python 3.x
estrellaestrellaestrellaestrellaestrella(44)

Actualizado el 6 de Diciembre del 2016 (Publicado el 30 de Noviembre del 2016)gráfica de visualizaciones de la versión: Python 3.x
259.411 visualizaciones desde el 30 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import os
 
def menu():
	"""
	Función que limpia la pantalla y muestra nuevamente el menu
	"""
	os.system('clear') # NOTA para windows tienes que cambiar clear por cls
	print ("Selecciona una opción")
	print ("\t1 - primera opción")
	print ("\t2 - segunda opción")
	print ("\t3 - tercera opción")
	print ("\t9 - salir")
 
 
while True:
	# Mostramos el menu
	menu()
 
	# solicituamos una opción al usuario
	opcionMenu = input("inserta un numero valor >> ")
 
	if opcionMenu=="1":
		print ("")
		input("Has pulsado la opción 1...\npulsa una tecla para continuar")
	elif opcionMenu=="2":
		print ("")
		input("Has pulsado la opción 2...\npulsa una tecla para continuar")
	elif opcionMenu=="3":
		print ("")
		input("Has pulsado la opción 3...\npulsa una tecla para continuar")
	elif opcionMenu=="9":
		break
	else:
		print ("")
		input("No has pulsado ninguna opción correcta...\npulsa una tecla para continuar")



Comentarios sobre la versión: Python 3.x (44)

darwin ds
9 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
hola, disculpa el codigo esta con unos errores...
se supone que despues de un IF si es string va con comillas, contario no :
if opcionMenu=="1":
if opcionMenu==1:
Responder
Imágen de perfil
9 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola Darwin, es un string, por eso lleva las comillas!!!
Responder
Benerando
7 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
correcto, no esta realizando ninguna operacion por ende se toma como string
Responder
Imágen de perfil
22 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Betty
12 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
Está excelente .....
Responder
Gustavo
29 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
excelente
Responder
7 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Gracias amigo, me ha servido, pero tengo una pregunta ¿Cómo puedo hacer para volver al menú principal después de elegir una opción?
Soy nuevo en esto.
Responder
Imágen de perfil
7 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Hola Andrés, ya lo hace... siempre vuelve a mostrar el menú excepto cuando pulsas la opción de salir.
Responder
7 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Error mío, creo que no había escrito bien el codigo. Gracias por tu respuesta amigo. Qué tengas un buen día
Responder
Catalina
24 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Me ha servido bastante el código, pero debes tener en cuenta que al momento de elegir las opciones estás diciendo que inserte un NUMERO y cuando uno lo hace no lo recibe, simplemente porque lo toma como un string, solo debes quitarle las comillas en los if, por ejemplo (if opcionMenu==1:)

Muchas gracias,
Responder
YIMI PEICH
7 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
CORRECTO!!...por eso Python es tan intuitivo y tan bonito y limpio.
Animo a los que no conocen ningún lenguaje o desean aprender a programar, que hagan o busquen lo mismo pero por ejemplo en JAVA (van a ver que cambio!!...sin desmerecer a JAVA que es un lenguaje para ya programadores...
No obstante, a ver que opinais compis, me queda la gran duda de si recomendar a un principiante que empieze por Phyton o no. Quiero decir que luego al no "sufrir tanto" al escribir las rutinas y las funciones y entrar a aprender , no se, C# ó ++ ó C. O incluso PHP y JavaScript (no tanto JS) se lleve el chasco a la hora de escribir código. No se si me explico...
Responder
hans
26 de Enero del 2021
estrellaestrellaestrellaestrellaestrella
El codigo está excelente, los input capturan en formato str por lo que las comillas son necesarias no recomiendo transformar a numero ya que tendrias que validar que la respuesta sea un numero en el rango esperado y en caso contrario debieras gestionar el error con un try.
Responder
Ezequiel
2 de Octubre del 2017
estrellaestrellaestrellaestrellaestrella
Muchas gracias
Responder
GarNon_43
13 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
buenas sobre el còdigo tenia una pregunta, estoy haciendo un programa con las listas y al introducir lo que tu has puesto para hacer un menú al darle a run me dice "inconscient use of tab and spaces in identation". SOY BASTANTE NUEVO, help xD
Responder
Peter
28 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Ami también me sale ese error y no tengo forma de quitarlo, ¿cómo se puede hacer?
Gracias de antemano
Responder
Imágen de perfil
28 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Eso es problema la indentación de las lineas, revisa que todas sean tabuladores o espacios, y que esten bien tabuladas
Responder
pechuga1899
4 de Septiembre del 2021
estrellaestrellaestrellaestrellaestrella
En lugar de copiar el codigo del elif, da enter y escribelo tu mismo
Responder
marlene
7 de Diciembre del 2017
estrellaestrellaestrellaestrellaestrella
Gracias y me ayudo con el menu de un proyecto
Responder
paipi
29 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
N
20 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
¿Cómo podría hacer que dentro de una opción luego se puedan volver a elegir diferentes opciones?
Por lo demás genial.
Responder
David
19 de Noviembre del 2018
estrellaestrellaestrellaestrellaestrella
El programa, como plantilla MENÚ es genial, y como aprendizaje también.

El primer error, encontrado, ya se comenta por el hilo. Para elejir las opciones, hay que eliminar las comillas, ya que de caso contrario te lleva siempre al else.

De una forma parecida, ocurre con Pulsar una tecla para comenzar desde el principio. Aquí no especificamos, si pulsamos un numero o una letra por lo que en lugar de input debemos de emplear raw_input.

Gracias, por estos aportes. Estoy comenzando y como dije antes a modo de plantillas están genial.
Responder
Diego Avila
28 de Diciembre del 2018
estrellaestrellaestrellaestrellaestrella
Saludos esta bien el menu, aunque si en efecto genera un error al escoger una opcion dado que esta validando opcionMenu como un string y la opcion recogida o tomada es un integer como tal la evaluacion del if deberia ser : if opcionMenu == 1 :... caso contrario genera el mensaje: "No has pulsado ninguna opción correcta..."..... para usar tipo string como se evalua en el if deberia usarse str(mi_opcion) == "1" ..
Responder
Mauro
12 de Marzo del 2019
estrellaestrellaestrellaestrellaestrella
Esta buenisimo. Podes usar:

import os

borrar = 'cls' if os.name == 'nt' else 'clear' #os.name trae el nombre del kernel. NT para windows y POSIX para Mac o Linux

os.system(borrar)

Y te queda multiplataforma :)
Responder
Ruben__Gm
27 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
en que momento escogi esta optativa :V
Responder
Pao
29 de Septiembre del 2019
estrellaestrellaestrellaestrellaestrella
Intenté copiar el programa y agregarle más opciones (necesito que tenga 7) pero arroja error.
Es mi primer programa y me tiene loca!
Agradezco orientación.
Responder
darius
29 de Diciembre del 2019
estrellaestrellaestrellaestrellaestrella
Excelente, me trajo gratos recuerdos...
Responder
28 de Marzo del 2020
estrellaestrellaestrellaestrellaestrella
Gracias buen trabajo
Responder
Patricio
17 de Julio del 2020
estrellaestrellaestrellaestrellaestrella
Estimado. Su code probado en Python 3.6.8, funciona Excelente...!
Felicitaciones amigo.
Responder
andres altamirano
26 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
Hola; tengo una duda porque me da error si le agrego mas opciones, me da error de identacion.
1
2
3
4
5
6
7
8
9
10
11
12
def menu():
	"""
	Función que limpia la pantalla y muestra nuevamente el menu
	"""
	os.system('clear') # NOTA para mac tienes que cambiar clear por cls
	print ("Selecciona una opción: ")
	print ("\t1 - Recibir cantidad")
	print ("\t2 - Transferir monto")
	print ("\t3 - Mostrar balance una moneda")
    print ("\t4 - Mostrar balance general")
    print ("\t5 - Mostrar historico transacciones")
	print ("\t9 - salir")
Responder
andres altamirano
26 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
File "/Users/aaltamirano/Dropbox/Next_U/CodigoVisual/proyectoFinal.py", line 50
"""print ("\t4 - Mostrar balance general")
^
IndentationError: unindent does not match any outer indentation level


Este es el error
Responder
Imágen de perfil
26 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
Seguramente tienes un problema con el tipo de indentación... revisa que todo el código tenga el mismo tipo... o tabulador o espacios... tiene que estar por igual en todo el código.
Responder
andres altamirano
26 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
Hola, si revise con PyCharm y ahi si me mostro el error, esque con visual studio no salia.
Responder
emileth d
23 de Octubre del 2020
estrellaestrellaestrellaestrellaestrella
me sale tu mismo error en visual studio. ¿Que debo arreglar en visual?
Responder
Jose Miguel
24 de Febrero del 2021
estrellaestrellaestrellaestrellaestrella
Generalmente el error esta en el tabulador si has copiado y pegado el código suele ocurrir esto.
pon los print todos en el margen izquierdo y luego tabulas de nuevo.
Responder
Imágen de perfil
15 de Noviembre del 2020
estrellaestrellaestrellaestrellaestrella
me pasa lo mismo, hay alguna solución? he probado de todo (soy nuevo en esto)
Responder
Carolina
2 de Septiembre del 2020
estrellaestrellaestrellaestrellaestrella
Gracias!!!
Responder
jose paz monar
16 de Septiembre del 2020
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Luciana Verónica
11 de Mayo del 2021
estrellaestrellaestrellaestrellaestrella
Hola quisiera saber como podria hacer en un Menu de opciones se tenga que si o si ingresar o rellenar valores de la primera opcion.
Me explico, las demas opciones despues de la primera deben trabajar con los valores que se ingresan en la primera opcion.
La consigna es la siguiente:

Realizar un programa en Python que mediante un menú de opciones resuelva:
(1) Ingresar dos valores enteros A y B validando que sean positivos, que A sea par y que B sea
impar.
(2) Mostrar el cociente y el resto de la división entera mediante restas sucesivas entre A y B.
(3) Mostar si B es primo o no lo es.
(4) Intercambiar los valores de A y B.
(5) Calcular y mostrar la raíz cuadrada de A. (Algoritmo babilónico)
(6) Salir
Responder
encontraste como se resuelve?
13 de Mayo del 2021
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
DiamaondPro1126k
10 de Junio del 2021
estrellaestrellaestrellaestrellaestrella
busco forma de no usar python para ejecutar sherlok
Responder
te ayudo :)
7 de Agosto del 2021
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
8
9
10
11
#pip install keyboard
import keyboard as k
pressed = False
while True:
    if k.ispressed('TECLA') == True:
        pressed = True
 
if pressed == True:
    #codigo si fue presionada la tecla
else:
   #codigo si no.
Responder
Bryan
1 de Febrero del 2022
estrellaestrellaestrellaestrellaestrella
Crear un sistema que presente los siguiente requerimientos:
1)Menú de opciones
2)Cada opción debe realizar acciones diferentes
3)Preguntar al usuario si desea continuar dentro del sistema
4) Presentar un total obtenido de las opciones que haya elegido
ayuda con este deber!!!!!!!!!!
sobre(while, for, range)
Responder
erick
28 de Agosto del 2022
estrellaestrellaestrellaestrellaestrella
Sistema de registro de Almuerzos

El sistema debe tener las siguientes opciones:

Ingreso de comensales.
Se debe incluir nombre, Apellido, código
Esta opción se debe repetir hasta que ingrese la letra s
Registro de alimentación.
Debe permitirme buscar al comensal con su código.
Si lo encuentra debe preguntar si deseo registrarlo para el almuerzo en un día específico.
Esta opción se debe repetir hasta que ingrese la letra s
Validación de almuerzo
Debe permitirme buscar al comensal con su código.
Validar si está registrado para el almuerzo en este día
En caso de estar registrado, imprimir el mensaje “almuerzo contabilizado”
Esta opción se debe repetir hasta que ingrese la letra s
Listado de personas que se han servido el almuerzo.
Debe imprimir el listado de personas que se han servido el almuerzo ya las personas que no han llegado
Salir
Sale de la aplicación
Responder
21 de Octubre del 2022
estrellaestrellaestrellaestrellaestrella
Hola :)

Cómo hago para este caso:

Mostrar el siguiente menú al inicio del programa:
Nombre del archivo :
1. Cargar archivo
2. Borrar el archivo (Deshabilitado)
3. Agregar contenido al archivo (Deshabilitado)
4. Mostrar todo el contenido del archivo (Deshabilitado)
5. Mostrar el contenido de una línea específica (Deshabilitado)
6. Salir

** La pantalla se debe limpiar luego de cada una de las acciones.

Gracias
Responder

Comentar la versión: Python 3.x

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2935