PDA

Ver la versión completa : problemilla en python



chavaone
15-12-2008, 20:44
Hola estoy aprendiendo a programar y he elegido a python para empezar. Tengo un pequeño problemilla en un programa en el q introducidos dos vectores realiza varias operaciones. El problema es que al introducir la función while para que me repita que le seleccione la opción hasta que no este entre las que quiero no me funciona.

Este es el programa:

#vectores.py
print "introduce el primer vector"
x1=float(raw_input("Introduzca el valor de x:"))
y1=float(raw_input("Introduzca el valor de y:"))
z1=float(raw_input("Introduzca el valor de z:"))

print " "

print "introduzca el segundo vector"
x2=float(raw_input("Introduzca el valor de x:"))
y2=float(raw_input("Introduzca el valor de y:"))
z2=float(raw_input("Introduzca el valor de z:"))

print " "
print " "

print "Si quiere calcular su suma teclee a"
print "Si quiere calcular su resta teclee b"
print "Si quiere calcular el angulo q forman teclee c"
print "Si quiere calcular su producto escalar teclee d"
print "Si quiere calcular su producto vectorial teclee e"
print "Si quiere calcular el modulo del primer vector teclee f"
print "Si quiere calcular su el modulo del segundo vector teclee g"
opcion = "t"
while opcion != "a" or "b" or "c" or "d" or "e" or "f" or "g":
opcion=raw_input("seleccione la opcion q desea:")

if opcion == "a":
x12= x1+x2
y12= y1+y2
z12= z1+z2
print "el vector suma es",x12,"y"12,z12

Gracias de antemano

gondar_f
20-12-2008, 14:47
chavaone apenas conozco python, pero puede que el problema que tienes puede deberse a que no has tenido en cuenta los espacios, por lo menos en el code que muestras no aparecen, con lo que en la linea:

opcion=raw_input("seleccione la opcion q desea:")
deberías poner varios espacios antes de opcion.

Bueno si ve este post Kaos el te dira mejor, que el controla mucho de Python

foxwar
22-01-2009, 00:58
Prueva de introducirlo de esta manera

while opcion != ("a" or "b" or "c" or "d" or "e" or "f" or "g")
(tabulador)opcion=raw_input("seleccione la opcion q desea:")
o

while opcion != ("a" || "b" || "c" || "d" || "e" || "f" || "g"):
(tabulador)opcion=raw_input("seleccione la opcion q desea:")

Saludos

j8k6f4v9j
22-01-2009, 01:16
Bueno, hay varios fallitos, tanto sintácticos como semánticos:

Sintácticos:
- Siempre hay que identar el código, es lo que hace que el intérprete pueda saber qué pertenece a qué. Tanto el while como el if estaban sin identar, rompiendo la lógica del programa.
- El caracter de la concatenación es la coma (,), por lo que entre cada variable y cada cadena debe haber una obligatoriamente. Además de que faltaba alguna en la última línea, a la variable y12 le faltaba la 'y'

Semánticos:
- Si la lista de opciones es excluyente, entonces no tiene sentido decir:
"si la opción elegida no es a ó no es b entonces vuelve a repetir la pregunta"
Lo lógico es decir si no es a y tampoco b, entonces me ha dado una opción no válida y repito la pregunta


#vectores.py
print "introduce el primer vector"
x1=float(raw_input("Introduzca el valor de x:"))
y1=float(raw_input("Introduzca el valor de y:"))
z1=float(raw_input("Introduzca el valor de z:"))

print " "

print "introduzca el segundo vector"
x2=float(raw_input("Introduzca el valor de x:"))
y2=float(raw_input("Introduzca el valor de y:"))
z2=float(raw_input("Introduzca el valor de z:"))

print " "
print " "

print "Si quiere calcular su suma teclee a"
print "Si quiere calcular su resta teclee b"
print "Si quiere calcular el angulo q forman teclee c"
print "Si quiere calcular su producto escalar teclee d"
print "Si quiere calcular su producto vectorial teclee e"
print "Si quiere calcular el modulo del primer vector teclee f"
print "Si quiere calcular su el modulo del segundo vector teclee g"
#opcion = "t"
opcion = ''
while opcion != "a" and "b" and "c" and "d" and "e" and "f" and "g":
opcion=raw_input("seleccione la opcion q desea:")

if opcion == "a":
x12= x1+x2
y12= y1+y2
z12= z1+z2
print "el vector suma es:\nx = ",x12,"\ny = ",y12,"\nz = ",z12,"\n"





Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

chavaone
28-01-2009, 00:00
Muchas gracias por la ayuda j8k6f4v9j y a todos los demás por supuesto xD

yamteo
26-04-2010, 17:59
mi problema es que tengo que realizar un programa que sume lo elementos de un vector hasta 50 posiciones. como soy nuevo no e podido realizarlo no da por favor si puedes colaborarme lo agradesco.

RaidMan
27-04-2010, 01:05
Yamteo:

Lo ideal seria que abrieses un nuevo tema para preguntar tus dudas, si no tienen relacion con el anterior.

Dicho esto tratare de responderte:

Para sumar un vector (o array) de N elementos lo mejor es que uses un bucle.
Los bucles 'For' realizan las acciones que tu les indiques desde un numero hasta otro que tu les des.

En Python esto es muy sencillo, ya que valdria con darle el nombre de tu Array, Lista o Cadena de elementos para que realice las acciones indicadas tantas veces como elementos haya en tu Array, Lista o Cadena.



For i in [0,1,2,3,4,5] :
print "Hola Mundo!"


Esto imprimira en pantalla 6 veces el texto "Hola Mundo!"

Ahora simplemente tendrias que hacer que se sumen las posiciones de tu Array(n) haciendo que cada vez sume la siguiente posicion (n+1)



Un saludo

Marchi
27-04-2010, 03:08
A lo dicho por RaidMan agrego, aunque no creo que sea lo mas indicado dado el nivel de la pregunta, que se puede usar la función sum() suministrándole el vector como argumento.

Saludos

RaidMan
27-04-2010, 23:38
Muy bueno Marchi:), y mucho mas sencillo, la verdad, que lo que yo proponia.

Ahi queda eso Yamteo, escoge la opcion que quieras, o explora ambas (siempre sera mejor).


Un saludo