В функции ввода, как убедиться, что пользователь вводит число только с двумя знаками после запятой? - PullRequest
0 голосов
/ 22 сентября 2019

Когда я использую функцию ввода, как убедиться, что пользователь вводит число только с двумя десятичными знаками?И нет ул, нет списка ...., только введите цифры.мой код:

a = round(input("num: "),2)

ожидаемый вывод:

num: 3.55
num: 4.00
num: 32.40

1 Ответ

1 голос
/ 22 сентября 2019

input не обрабатывает автоматически то, что ожидать от пользователя.Вы можете написать условную оценку того, что пользователь ввел:

try:
    inp = input("num: ")
    if f'{float(inp):.2f}' == inp:
        print('Good to go')
    else:
        print('Your input does not contain exactly 2 decimal places')
except ValueError:
    print('Only numbers allowed')

Обратите внимание, если вам нужно снова прочитать от пользователя ложную заметку, оберните все это в цикл while True:.

Пробный прогон :

>>> num: 4
Your input does not contain exactly 2 decimal places
>>> num: something
Only numbers allowed
>>> num: 4.567
Your input does not contain exactly 2 decimal places
>>> num: 4.00
Good to go
...