Foros del Web » Programando para Internet » Python »

Menú de opciones ¿Lo hago bien?

Estas en el tema de Menú de opciones ¿Lo hago bien? en el foro de Python en Foros del Web. Hola! Estoy dando los primeros pasos en el tema de menús de opciones. Y como alguien, me tiro de las orejas por plantear el tema ...
  #1 (permalink)  
Antiguo 17/03/2013, 08:45
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Menú de opciones ¿Lo hago bien?

Hola!

Estoy dando los primeros pasos en el tema de menús de opciones. Y como alguien, me tiro de las orejas por plantear el tema de GO TO, he recurrido a las funciones. Pero claro, no sé si es correcto lo que hago.

Lo comento, por que suelo llamar a la misma función que he creado menu(), dentro de la propia función. Y no si es así o se hace de otra forma.

No entiendo muy bien como puedo llamar tan pronto a la función dentro de la función. En teoría, aún no está creada del todo ¿No?

También me gustaría saber si he aplicado bien el range.

Aquí os dejo el código:

Código Python:
Ver original
  1. lista = [1,2,3,4,5,6,7,8,9]
  2. def menu ():
  3.     opcion = 1
  4.     while opcion == 1:
  5.         print '1. Listar \n2. Eliminar \n3. Agregar\n4. Salir'
  6.         opcion = raw_input ('Escoge opcion:   ')
  7.         if opcion == '1':
  8.             print lista
  9.             menu() # Llamo a la funcion
  10.         elif opcion =='2':
  11.             elimino = int(raw_input ('Escoge numero a eliminar: '))
  12.             lista.remove(elimino)
  13.             print lista
  14.             menu() # Llamo a la funcion
  15.            
  16.         elif opcion == '3':
  17.             agregar = int(raw_input ('Escoge numero a agregar: '))
  18.             lista.append(agregar)
  19.             print lista
  20.             menu() # Llamo a la funcion
  21.         elif opcion == '4':
  22.             continue
  23.         elif opcion != range (1,4): # Esta bien aplicado el range, pregunto...
  24.             print 'Esa opcion no es valida'
  25.             menu() # Llamo a la funcion
  26. print menu()

Un saludo!
  #2 (permalink)  
Antiguo 17/03/2013, 11:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Menú de opciones ¿Lo hago bien?

Cita:
Iniciado por Koan Ver Mensaje
Estoy dando los primeros pasos en el tema de menús de opciones. Y como alguien, me tiro de las orejas por plantear el tema de GO TO, he recurrido a las funciones. Pero claro, no sé si es correcto lo que hago.
Si, por favor no uses gotos

Cita:
Iniciado por Koan Ver Mensaje
Lo comento, por que suelo llamar a la misma función que he creado menu(), dentro de la propia función. Y no si es así o se hace de otra forma.
Ciertamente lo puedes hacer, haciendo llamadas recursivas, pero consumiría bastante memoria y puedes llegar a acabarte el stack.

Cita:
Iniciado por Koan Ver Mensaje
No entiendo muy bien como puedo llamar tan pronto a la función dentro de la función. En teoría, aún no está creada del todo ¿No?
No, recursión, es un concepto, que toma tiempo entenderlo especialmente si vas empezando.

Toma este ejemplo y date un tiempo para entenderlo y analizarlo:
Código Python:
Ver original
  1. def f(a):
  2.     # Inicio de la funcion
  3.     print "  " * a, a
  4.     if a == 4:
  5.         return
  6.     f(a + 1)
  7.     # Fin de la funcion
  8.     print "  " * a, a
  9.  
  10. f(1)
  #3 (permalink)  
Antiguo 17/03/2013, 13:32
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Menú de opciones ¿Lo hago bien?

Cita:
Iniciado por razpeitia Ver Mensaje
Toma este ejemplo y date un tiempo para entenderlo y analizarlo:
Código Python:
Ver original
  1. def f(a):
  2.     # Inicio de la funcion
  3.     print "  " * a, a
  4.     if a == 4:
  5.         return
  6.     f(a + 1)
  7.     # Fin de la funcion
  8.     print "  " * a, a
  9.  
  10. f(1)
Ok. Es que voy probando cosas e igual me adelanto en exceso. A ver si me quito el GO TO de la cabeza. Eso me pasa por teclear listado de Basic con un Spectrum. Debo cambiar el chip ¡Y pronto! jejeje...

Saludos!

Etiquetas: lista, opciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:20.