es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Teniendo problemas al comparar dos variables de cadena en Python.

Estoy escribiendo un programa en Python para crear una pizarra de cricket. Ahora estoy teniendo problemas al comparar cadenas. Sé que puede ser una pregunta tonta, pero aquí está mi código:

print("\nBienvenido a nuestro programa de pizarra de cricket")
team1 = input("Ingrese el nombre del equipo 1: ")
team2 = input("Ingrese el nombre del equipo 2: ")

print("Haz el volado")
whoWonTheToss = input("¿Quién ganó el volado?: ")
print(whoWonTheToss)

if (whoWonTheToss != team1) or (whoWonTheToss != team2):
    print("Ingrese una opción válida")

Imprimí print(whoWonTheToss) solo para verificar si mi programa está funcionando. No soy el mejor explicando, pero aquí está la salida que estoy obteniendo:

Bienvenido a nuestro programa de pizarra de cricket
Ingrese el nombre del equipo 1: RCB 
Ingrese el nombre del equipo 2: CSK
Haz el volado
Quién ganó el volado?: RCB
RCB
Ingrese una opción válida

Ahora estoy pensando por qué el programa me está dando “Ingrese una opción válida” al final después de haber ganado el volado. Esto debería terminar el programa, pero en lugar de eso, solo imprime “Ingrese una opción válida”. ¿Cómo puedo solucionar este problema?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con su código está en el operador lógico utilizado en la declaración “if”. Está usando “or” en lugar de “and”. La condición en la declaración “if” se evalúa como verdadera porque aunque el usuario ingresó un nombre de equipo válido, no es igual a ambos “team1” y “team2” al mismo tiempo. Para solucionar esto, cambie el operador lógico a ‘and’ para que la condición solo sea verdadera si “whoWonTheToss” no es igual a “team1” y tampoco es igual a “team2”.

    Aquí está el código corregido:

    print("\nBienvenido a nuestro programa de marcador de cricket")
    team1 = input("Ingrese el nombre del equipo 1: ")
    team2 = input("Ingrese el nombre del equipo 2: ")
    
    print("Lancemos la moneda")
    whoWonTheToss = input("Quién ganó la moneda: ")
    print(whoWonTheToss)
    
    if (whoWonTheToss != team1) and (whoWonTheToss != team2):
        print("Ingrese una opción válida")
    else:
        print("La moneda fue ganada por:", whoWonTheToss)
    

    Con este cambio, el programa imprimirá “La moneda fue ganada por: (nombre del equipo)” cuando el usuario ingrese un nombre de equipo válido que coincida con “team1” o “team2”.

Comments are closed.