Buenas me presento, mi nombre es Sergio y estoy empezando en el mundo de la programación.
Mi duda es la siguiente, cuando creo un Menú definiendo la funcion pero le agrego un parametro por ejemplo: def mi_menu(menu): luego de querer volver llamar a la funcion para que me vuelva a aparecer el menu con sus opciones no me aparece, tambien intento llamando al parametro (menu) pero tampoco me deja y me tira errores.
Estoy haciendo un ejercicio con un menu para un Restaurant y al volver a llamar al menu y ejecutarlo solo aparece en blanco o no me deja, les dejaré lo que llevo de avance en el menu para que me puedan ayudar, se los agradeceria mucho amigos :)
def Restaurant(menu):
print("----------Carta----------------")
print("1.-Platos.")
print("2.-Bebestibles")
print("3.-Postres")
print("4.-Total a pagar")
print("5.-Salir")
print("----------Carta-----------------")
op=int(input("Ingrese una opcion:"))
if (op==1):
acumplatos=0
print("----------Platos------------")
print("1.-Salmon a la plancha-----$4.100")
print("2.-Chorillana(4 personas)--$5.500")
print("3.-Lomo a lo pobre---------$4.800")
print("4.-Paila marina------------$4.500")
print("5.-Pollo asado-------------$3.800")
print("----------Platos------------")
opplato=int(input("Ingrese numero de plato deseado:"))
if opplato==1:
subtotal1=acumplatos+4100
if opplato==2:
subtotal2=acumplatos+5500
if opplato==3:
subtotal3=acumplatos+4800
if opplato==4:
subtotal4=acumplatos+4500
if opplato==5:
subtotal5=acumplatos+3800
Restaurant(menu) #aquí :(
Restaurant(menu) #Aquí mi duda para volver al menu principal :(
Espero respuestas gracias :-(
>:(
· Los códigos deben ir en etiquetas GeSHi
· Los temas de Python van en scripting
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
Al definir Restaurant el parametro menu no tiene return, y dentro del código no lo estás llamando, así que no sería válido la entrada y salida de datos
llamar a una función dentro de la misma función si bien se puede hacer, se conoce como llamada recursiva, no es muy conveniente, sobre todo cuando estás comenzando, es mejor y más fácil usar un ciclo while.
Te muestro una forma con tu ejemplo:
#-*- coding:utf -8 -*-
def Restaurant():
op=0
while op!= 5:
print("----------Carta----------------")
print("1.-Platos.")
print("2.-Bebestibles")
print("3.-Postres")
print("4.-Total a pagar")
print("5.-Salir")
print("----------Carta-----------------")
op=int(input("Ingrese una opcion:"))
if (op==1):
acumplatos=0
print("----------Platos------------")
print("1.-Salmon a la plancha-----$4.100")
print("2.-Chorillana(4 personas)--$5.500")
print("3.-Lomo a lo pobre---------$4.800")
print("4.-Paila marina------------$4.500")
print("5.-Pollo asado-------------$3.800")
print("----------Platos------------")
opplato=int(input("Ingrese numero de plato deseado:"))
if opplato==1:
subtotal1=acumplatos+4100
if opplato==2:
subtotal2=acumplatos+5500
if opplato==3:
subtotal3=acumplatos+4800
if opplato==4:
subtotal4=acumplatos+4500
if opplato==5:
subtotal5=acumplatos+3800
Restaurant() #Aquí mi duda para volver al menu principal :(
Cita de: Geormarsch en 30 Mayo 2017, 04:12 AM
Al definir Restaurant el parametro menu no tiene return, y dentro del código no lo estás llamando, así que no sería válido la entrada y salida de datos
Gracias por responder amigo, tambien creia que era por el return, pero no entiendo como usar el return en este caso especificamente :/ si tengo que definir return como return (menu) o de otra manera :/
Cita de: tincopasan en 30 Mayo 2017, 04:40 AM
llamar a una función dentro de la misma función si bien se puede hacer, se conoce como llamada recursiva, no es muy conveniente, sobre todo cuando estás comenzando, es mejor y más fácil usar un ciclo while.
Te muestro una forma con tu ejemplo:
#-*- coding:utf -8 -*-
def Restaurant():
op=0
while op!= 5:
print("----------Carta----------------")
print("1.-Platos.")
print("2.-Bebestibles")
print("3.-Postres")
print("4.-Total a pagar")
print("5.-Salir")
print("----------Carta-----------------")
op=int(input("Ingrese una opcion:"))
if (op==1):
acumplatos=0
print("----------Platos------------")
print("1.-Salmon a la plancha-----$4.100")
print("2.-Chorillana(4 personas)--$5.500")
print("3.-Lomo a lo pobre---------$4.800")
print("4.-Paila marina------------$4.500")
print("5.-Pollo asado-------------$3.800")
print("----------Platos------------")
opplato=int(input("Ingrese numero de plato deseado:"))
if opplato==1:
subtotal1=acumplatos+4100
if opplato==2:
subtotal2=acumplatos+5500
if opplato==3:
subtotal3=acumplatos+4800
if opplato==4:
subtotal4=acumplatos+4500
if opplato==5:
subtotal5=acumplatos+3800
Restaurant() #Aquí mi duda para volver al menu principal :(
Está buena la opcion de usar el while en el menú, pero el problema es que tengo que usar parámetros, ya que me lo piden( en el ejercicio) y ahi es donde no entiendo, se que tengo que usar return pero no sé especificamente como aplicarlo :(