1
resposta

Implementei de forma diferente mas não funciona

Galera, eu fiz de uma forma diferente do professor, e, simplesmente na linha 22, depois do ultimo WHILE, o programa entra em loop infinito. Não consigo entender porque a condição de parada não está acontecendo, mesmo definindo "S" ou "N", para o usuário fazer um novo palpite ou sair do jogo.

print("*********************************")
print("Bem vindo ao jogo de adivinhações")
print("*********************************")

numero_secreto = 43

de_novo = "S"

while (de_novo == "S"):

    chute_do_usuario = int(input("Digite o seu número: "))

    if (numero_secreto == chute_do_usuario):
        print("Você acertou!")
    else:
        print("Você errou!")
        if (chute_do_usuario > numero_secreto):
            print("Você falou a mais")
        if (chute_do_usuario < numero_secreto):
            print("Você falou a menos")
    de_novo = "default"
    while (de_novo != "S" or de_novo != "N"):
        de_novo = input("Quer tentar novamente? Digite S ou N: ")
        if (de_novo != "S" or de_novo != "N"):
            print("Valor inválido. Digite S ou N")

print("Fim do jogo")
1 resposta

Fala Natanael, tranquilo?

Cara, acredito que se vc mudar os "or" por "and" vai fica top, porque parece que você quer que o de_novo seja diferente de N e diferente de S. Além disso, acho que todas as letras ou são diferentes de S ou são diferentes de N...

"N" != "S" = Verdadeiro "S" != "N" = Verdadeiro "Z" != "S" != "N" != Verdadeiro

O condicional "or" precisa de um Verdadeiro apenas para satisfazer o "if"

    while (de_novo != "S" and de_novo != "N"):
        de_novo = input("Quer tentar novamente? Digite S ou N: ")
        if (de_novo != "S" and de_novo != "N"):
            print("Valor inválido. Digite S ou N")

vlw