Preguna de Novato Python Validacion

Iniciado por supLord, 4 Mayo 2016, 21:01 PM

0 Miembros y 1 Visitante están viendo este tema.

supLord

Hola señores quieria saber donde falla mi codigo.
opcion = 0
while opcion != 1 or opcion != 2:
         opcion = int(raw_input(" Introduzca opcion"))

Lo que sucede es que se me queda en el while y no sale.


ivancea96

No es 'or', es 'and'. Siempre va a ser diferente de 1 o de 2.

supLord

¿Pero con el and no estoy obligando a que se cumplan ambas condiciones para salir del bucle? Necesito que cuando se cumpla una de las dos salga.

FurioMoltisanti


while opcion != 1 or opcion != 2:

sería: mientras opcion sea diferente a 1 o opcion sea diferente a 2 ejecuta

el resultado es que cualquier numero va a ser diferente a 1 o a 2.


while opcion != 1 and opcion != 2:

sería: mientras opcion sea diferente a 1 y opcion sea diferente a 2 ejecuta

el resultado es que cuando el numero sea 1 o 2 terminara el bucle.

Espero que se entienda.

tincopasan

#4
veo dos cosas que no haría, lo realizaría así:
Código (python) [Seleccionar]

opcion= int(input("Introduzca opcion: ") )
while not (opcion == 1 or opcion == 2):
   opcion = int(input("Introduzca opcion: "))


o sea 1)opción no tiene valor hasta que el usuario se lo da
2) while se repite hasta que devuelve false, por eso en este caso uso while not opcion1 or opcion 2

edito: tercer error: va en el foro de script/python (no todos lo verán en cualquier lado, lo ví de casualidad)