Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Bucle while
#1
Buenas!!
Soy nuevo en el tema de la programación, empecé hace solo unos días. Tengo un problema con un bucle while del que no puedo salir, incluso volviéndose false alguna de las dos condiciones que coloco (la parte que esta en negrita). Probablemente sea un error sencillo de código que no puedo solucionar por mi poca madures de conocimientos en el tema. Les agradecería su ayuda.

print("Bienvenido\nA continuacion debera igresar cienco palabras")
palabras = [input("Primer palabra:"),input("Segunda palabra:"),input("Tercer palabra:"),input("Cuarta palabra:"),input("Quinta palabra:"),]
print("Estas son sus 5 palabras:",palabras)
desicion = input("¿Desea insertar o eliminar alguna palabra? (indique si o no):")
while desicion!="si" or desicion!="no":

    print("Comando incorrecto")
    desicion = input("¿Desea insertar o eliminar alguna palabra? (indique si o no):")

while desicion == "si":
    desicion2 = input("¿Que desea hacer? (indique insertar o eliminar):")
    if desicion2 == "insertar":
        palabras.append(input("Inserte palabra (se agregara al final de la lista):"))
    elif desicion2 == "eliminar":
        palabras.remove(input("¿Que palabra desea eliminar?:"))
    desicion = input("¿Desea insertar o eliminar otra palabra? (indique si o no):")
print("Su lista final es la siguiente:",palabras)
print("Muchas gracias, hasta la proxima.")
Responder
#2
Hola, ¿cómo estás?

En primer lugar, por favor cambiemos "desicion" por "decision". Ahora bien, al escribir esto:

Código:
while decision != "si" or decision != "no":
    print("Comando incorrecto")

Python va a ingresar al bucle cuando decision no sea "si" o no sea "no". Esto quiere decir que si decision es "si", va a entrar al bucle (porque la segunda condición es verdadera); y si decision es "no", también (porque la primera es verdadera). Recordá que el "or" se vuelve verdadero cuando cualquiera de las dos comparaciones es verdadero. Creo que lo que querés decir es esto:

Código:
while decision != "si" and decision != "no":

Es decir: si "decision" es algún valor diferente de "si" y "no", puesto que el "and" se vuelve verdadero cuando ambas comparaciones son verdaderas.

Saludos!
Responder
#3
Tenes toda la razón Francisco, quedo clarísimo.
Muchas gracias por tu respuesta!!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)