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

Como aceitar input de float ou int do usuário?

Nesse jogo de adivinhação, se o usuário insere um número inteiro, o código roda normalmente, mas se ele insere um número float, o código sofre um erro.

Input do usuário:

chute = int(input("Digite um número entre 1 e 100: "))
    print("Você digitou " , chute)

    if(chute < 1 or chute > 100):
        print("Você deve digitar um número entre 1 e 100!")
        continue

Erro que aparece ao digitar um número float:

Digite um número entre 1 e 100: 47.8 Traceback (most recent call last): File "C:\Users\Dantinhas\PycharmProjects\pythonProject\adivinhação.py", line 13, in chute = int(input("Digite um número entre 1 e 100: ")) ValueError: invalid literal for int() with base 10: '47.8'

Como eu faço para receber um float do usuário e convertê-lo para int, só para o código não sofrer nenhum erro e conseguir prosseguir com o jogo?

2 respostas

Você pode utilizar o round() para arredondar ou fazer uma checagem do tipo do valor numérico

Ex:

    if chute%1 != 0:
        return "Esse chute não é um numero inteiro"
solução!

Ao invés de receber o input convertendo para int, recebe convertendo para float e usa a regra que o amigo passou acima para validar número.

chute = float(input("Digite um número entre 1 e 100: "))
     if chute%1 != 0:
        return "Esse chute não é um numero inteiro"
    elif (chute < 1 or chute > 100):
        print("Você deve digitar um número entre 1 e 100!")
        continue
    else:
        print(f"Você digitou {chute}")