Ver Mensaje Individual
  #24 (permalink)  
Antiguo 15/10/2010, 23:46
REHome
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: Menú con while.

Pillo lo que al final hay que puslsar else:.

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

Hay una cosa que pasa. Cuando pulso z) por poner un ejemplo, me sale este mensaje que es el correcto pero de ahí no sale y parece que el programa se bloqueó.

Código Python:
Ver original
  1. print 'Sólo hay sietes opciones: a, b, c, d, e, f o g. Usted has tecleado', opcion

PD: Todavía el g) me da la tabarra y eso que puse * en import.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar