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?
f_de={"1":empezar,"2":opciones,"3":salir}
te recomiendo cambiar esa linea por un array simple,
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
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:
print('''[1] Empezar
[2] Opciones
[3] Salir''')
Saludos.