Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Bug com valores extremos

Caros, gostaria da opinião de vocês. meu código funciona conforme instruido na aula no entanto, ao colocar valores muito distantes do número secreto, ele aponta como sendo menor, quando na verdade é maior. alguma ideia/sugestão?

2 respostas
solução!

Olá Gustavo!

Pelo que você descreveu, parece que o problema pode estar na forma como você está comparando os valores no seu código. No código que foi apresentado na aula, temos as seguintes linhas:

maior = chute > numero_secreto
menor = chute < numero_secreto

Essas linhas estão verificando se o valor digitado pelo usuário é maior ou menor que o número secreto. Se o valor digitado for muito grande, a variável maior será verdadeira e a variável menor será falsa. Se o valor digitado for muito pequeno, a variável maior será falsa e a variável menor será verdadeira.

No entanto, se o valor digitado for igual ao número secreto, ambas as variáveis maior e menor serão falsas. Isso pode causar confusão se você estiver verificando essas variáveis em uma ordem específica.

Por exemplo, se você estiver verificando a variável menor antes da variável maior, e o valor digitado for muito grande, o programa irá informar que o valor é menor, quando na verdade é maior. Isso ocorre porque a condição menor é falsa e, portanto, o programa passa para a próxima condição.

Para corrigir isso, você pode alterar a ordem em que verifica as variáveis, ou pode adicionar uma condição adicional para verificar se o valor digitado é igual ao número secreto. Aqui está um exemplo de como você pode fazer isso:

if (acertou):
    print("Você acertou!")
elif (maior):
    print("Você errou! O seu chute foi maior que o número secreto.")
elif (menor):
    print("Você errou! O seu chute foi menor que o número secreto.")
else:
    print("Ocorreu um erro inesperado.")

Neste exemplo, o programa verifica primeiro se o valor digitado é igual ao número secreto. Se não for, ele verifica se o valor é maior. Se ainda não for, ele verifica se o valor é menor. Se nenhuma dessas condições for verdadeira, ele imprime uma mensagem de erro.

Espero ter ajudado e bons estudos!

Cara, realmente era isso! estranho pensar que a ordem gere esse bug, mas que bom que eu me conultei no fórum kkkk valeu mesmo! abraço