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

Formato de número incorreto ('10' e não 'dez')

Como faríamos para resolver se o jogador digitasse "dez" ao invés de "10"? Como faço para apresentar uma mensagem de para o jogador informando que ele deve digitar "10" e não "dez".

Tentei mais ou menos por esse caminho, mas não deu certo:

numero_secreto = 42
chute_str = input("Digite seu número:")
print("Você digitou:",chute_str)
if ("chute_str == str"):
    print("Formato incorreto. Digite '10' e não 'dez', por exemplo")
chute = int(chute_str)
if (numero_secreto == chute):
    print("Você acertou!!!")
else:
    print("Não foi dessa vez :/")
print("Fim do jogo")
2 respostas
solução!

Olá, com certeza não fiz da melhor forma, mas pelos meus testes deram certo o resultado.

numero_secreto = 42
chute_str = "inicio"
while (type(chute_str) == str):
    chute_str = input("Digite seu número:")
    print("Você digitou:",chute_str)
    try:
        float(chute_str)
        chute_str = float(chute_str)
    except ValueError:
            print ("Formato incorreto. Digite '10' e não 'dez', por exemplo")
if (numero_secreto == chute_str):
    print("Você acertou!!!")
else:
    print("Não foi dessa vez :/")
print("Fim do jogo")

Olá, não existe apenas uma forma de resolver esse problema no meu caso eu resolvi tratar ele antes mesmo dele começar de uma forma bem simples e nada sutil. Mandei o usuário digitar o numero e não letras você também pode escrever, digite um numero e não escreva ele. Ficaria a seu critério eu sempre gosto de resolver um problema antes mesmo dele começar mas se tratando do usuário que os deuses da programação nos ajude né !!

numero_secreto = 42
chute_str = input("Digite um número e não letras: ")
print(f"Você digitou: {chute_str}")
if(type(chute_str) == str):
    print(f"Formato incorreto. "
          f"\nDigite Um numero EX: '10' "
          f"\ne não e não Escreva EX: 'dez'")

elif(numero_secreto == int(chute_str)):
    print("Você acertou!!!")
else:
    print("Não foi dessa vez :/")
print("Fim do jogo")