How to make a check on the number? For example:
a = float(input('Текст'))
How to check if user enters string? At the same time I need to write to him that this is not a number.
How to make a check on the number? For example:
a = float(input('Текст'))
How to check if user enters string? At the same time I need to write to him that this is not a number.
This method returns True if it received any string that can be recognized as a floating point number.
def isfloat(value): try: float(value) return True except ValueError: return False
To answer the user, you can use the ternary operator:
print('это число' if isfloat(input('введите число')) else 'это не число')
Or the usual condition:
a = input('введите число') if isfloat(a): print('это число') else print('это не число')
float
) in Python: #Команда isFloat? Комментарий #------------------------------------ -------- -------------------------------- print(isfloat("")) #False Пустая строка print(isfloat("127")) #True Распознаваемая строка print(isfloat(True)) #True Истина - это число print(isfloat("True")) #False "Истина" - это не число! print(isfloat(False)) #True Зато Ложь - число print(isfloat("123.456")) #True Десятичное число print(isfloat(" -127 ")) #True Пробелы вокруг числа обрезаются print(isfloat("\t\n12\r\n")) #True Включая переносы строк print(isfloat("NaN")) #True Not a number - число! print(isfloat("NaNanananaBATMAN")) #False Но не в составе большей строки print(isfloat("-iNF")) #True Минус бесконечность print(isfloat("123.E4")) #True Экспоненциальная нотация print(isfloat(".1")) #True Только мантисса print(isfloat("1,234")) #False Дискриминация, запятая не считается разделителем! print(isfloat(u'\x30')) #True Unicode - это число print(isfloat("NULL")) #False "Null" - обычная строка print(isfloat(0x3fade)) #True Шестнадцатеричное число print(isfloat("6e7777777777777")) #True Насколько большое, что считается бесконечным print(isfloat("1.797693e+308")) #True Максимальное значение float print(isfloat("infinity")) #True То же что inf - бесконечность print(isfloat("infinityandBEYOND")) #False Но не в составе большей строки print(isfloat("12.34.56")) #False Только одна точка print(isfloat(u'四')) #False Японский символ '4' это не float. print(isfloat("#56")) #False знак фунта стерлингов print(isfloat("56%")) #False Проценты не обрабатываются print(isfloat("0E0")) #True Странная, но экспонента print(isfloat(0**0)) #True Ноль в степени ноль print(isfloat("-5e-5")) #True Отрицательная степень print(isfloat("+1e1")) #True Можно явно указать, что число положительное print(isfloat("+1e1^5")) #False Нераспознаваемый экспоненциальный формат print(isfloat("+1e1.3")) #False Экспонента должна быть целым числом print(isfloat("-+1")) #False Слишком много знаков print(isfloat("(1)")) #False Скобки препятствуют распознаванию
This table is a translation of the answer given by Eric Leschinski to en.SO. I commented out the extra parts of the line so that it can be copied and executed as code.
.isdecimal()
character is a number, for example: float('៣') == 3.0
- jfs[c for c in map(chr, range(sys.maxunicode+1)) if c.isdecimal()]
(a set of characters that float recognizes as digits) - jfs try: a = float(input('Текст')) except ValueError: print('Введено не число')
Source: https://ru.stackoverflow.com/questions/494591/
All Articles