Python "Menu"

Iniciado por Camilo2001, 10 Mayo 2017, 04:15 AM

0 Miembros y 1 Visitante están viendo este tema.

Camilo2001

Código (python) [Seleccionar]
def menu():

def empezar():
print("Empezando...")

def opciones():
print("Opciones...")

def salir():
print("Saliendo...")

print("1 Empezar")
print("2 Opciones")
print("3 Salir")

f_de={"1":empezar,"2":opciones,"3":salir}

while True:

entrada=input("->")

if entrada in f_de:
f_de[entrada]()
else:
pass #o dar un mensaje de error


Es un codigo correcto para un menu? O hay una forma mas sencilla/elegante?

engel lex

Código (python) [Seleccionar]
f_de={"1":empezar,"2":opciones,"3":salir}

te recomiendo cambiar esa linea por un array simple,

Código (python) [Seleccionar]
f_de=[
  empezar,
  opciones,
  salir
]



está bien que lo trates de modularizar, pero de hacer funciones dentro de funciones no es lo mejor... solo hace el codigo complicado y difícil de leer

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

creo que tenés un concepto equivocado sobre python, no es tan así que existen maneras correctas o incorrectas, en realidad existen maneras diferentes con respecto a la forma de plantear el código. Pasa lo mismo con el término elegante o no , eso es subjetivo, no a todos nos gusta o parece elegante lo mismo. En cuanto a sencillez, no hay una forma específica de crear un menú, hay muchisimas formas.
En cuanto a tu código, soy partidario de usar diccionarios en menus, ya que después facilita mucho el uso con clases.
lo único que no entiendo porque la necesidad de 3 print seguidos si podrías:
Código (python) [Seleccionar]

print('''[1] Empezar
[2] Opciones
[3] Salir''')

Saludos.