• Martes 16 de Abril de 2024, 20:20

Autor Tema:  Hacer menú.  (Leído 2111 veces)

Meta

  • Miembro MUY activo
  • ***
  • Mensajes: 140
    • Ver Perfil
Hacer menú.
« en: Domingo 17 de Octubre de 2010, 08:29 »
0
Estoy haciendo un buen menú con Python pero no me sale.

Cuando pulso la opción a) para introducir datos, me vuelve al menú principal, lo mismo para las demás opciones excepto la i) que es para finalizar programa es cuando se acaba y te preguntará este mensaje print 'Gracias por usar el programa.'.

Hay solcuión para ello, cada vez que introduzco los datos de la opción b), el menú principal no vuelve, parece que el programa se ha acabado o se bloqueó.

¿Hay solución?




Código: Python
  1. from math import acos, pi, sqrt
  2.  
  3. opcion = ''
  4. while opcion <= 'a' or opcion >= 'i':
  5. #while opcion in 'abcdefghi':
  6.     print '''Selecciona una opción:
  7.            a) Introducir el primer vector.
  8.            b) Introducir el segundo vector.
  9.            c) Calcular la suma.
  10.            d) Calcular la diferencia.
  11.            e) Calcular el producto escalar.
  12.            f) Calcular el producto vectorial.
  13.            g) Calcular el ángulo (en gastos) entre ellos.
  14.            h) Calcular la longitud.
  15.            i) Finalizar. '''
  16.            
  17.     opcion = raw_input('Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: ')
  18.    
  19.     # Primer vector.
  20.     if  opcion == 'a':
  21.         x1 = float(raw_input('Introduce valor x1: '))
  22.         y1 = float(raw_input('Introduce valor y1: '))
  23.         z1 = float(raw_input('Introduce valor z1: '))
  24.         print 'Haz ingresado estos valores', x1, y1, z1, 'del primer vector.'
  25.  
  26.     # Segundo vector.
  27.     elif opcion == 'b':
  28.         x2 = float(raw_input('Introduce valor x2: '))
  29.         y2 = float(raw_input('Introduce valor y2: '))
  30.         z2 = float(raw_input('Introduce valor z2: '))
  31.         print 'Haz ingresado estos valores', x2, y2, z2, 'del segundo vector.'
  32.  
  33.     # Suma.
  34.     elif opcion == 'c':
  35.  
  36.             suma = (x1 + x2, y1 + y2, z1 + z2)
  37.             print suma
  38.  
  39.     # Diferencia.
  40.     elif opcion == 'd':
  41.  
  42.             diferencia = (x1 - x2, y1 - y2, z1 - z2)
  43.             print diferencia
  44.  
  45.     # Producto escalar.
  46.     elif opcion == 'e':
  47.  
  48.             producto = (x1 * x2 + y1 * y2 + z1 * z2)
  49.             print producto
  50.  
  51.      # Producto vectorial.
  52.     elif opcion == 'f':
  53.  
  54.             vectorial = (y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - y1 * x2)
  55.             print vectorial
  56.  
  57.     # Ángulo.
  58.     elif opcion == 'g':
  59.             angulo  = (180 / pi) * acos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
  60.             print angulo
  61.  
  62.     # Longitud.
  63.     elif opcion == 'h':
  64.  
  65.             x = float(raw_input('Introduce valor x: '))
  66.             y = float(raw_input('Introduce valor y: '))
  67.             z = float(raw_input('Introduce valor z: '))
  68.  
  69.             longitud = sqrt(x**2+y**2+z**2)
  70.             print longitud
  71.  
  72.     elif opcion == 'i':
  73.             print 'Gracias por usar el programa.'
  74.             break
  75.     else:
  76.             print 'Puedes teclear estas siguientes opciones: a, b, c, d, e, f, g, h o i. Usted haz tecleado', opcion
  77.  

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Hacer menú.
« Respuesta #1 en: Domingo 17 de Octubre de 2010, 20:31 »
0
Te recomiendo usar el módulo cmd para hacer menús
Menús en Python
El pasado son solo recuerdos, el futuro son solo sueños