Как реализовать поле калькулятора на python для ввода только числовых значений?
Функция прекрасно работает, пока не вводишь вторую точку. Далее ограничение на символы снимается и можно печатать любую ерунду. 1.) Как ограничить число вводимых точек до одной? 2.) Как разрешить ввод точки с кнопки на экране? С клавиатуры вводится нормально, а на экране - нет.
def Проверка(число):
поиск=re.match('^(?:-[\d.]{1,4}|[\d.]{1,5})$', число)
try:
float(число)
return поиск is not None
except:
return поиск is None
Ответы (1 шт):
Автор решения: Oopss
→ Ссылка
def check_str(s):
if len(s)>10:
return 'Слишком длинное'
s = s.replace(',', '.')
if s.count('.')>1:
return 'Не верный формат'
p = s.replace('.', '')
if not p.isnumeric():
return 'Только цифры'
return float(s)
t=['234.234', '.456', '857.', '456.78.56', '0,01', 'abc.22']
for i in t:
print(i,check_str(i))
234.234 234.234
.456 0.456
857. 857.0
456.78.56 Не верный формат
0,01 0.01
abc.22 Только цифры