Как проверить дробное ли число в python
Перейти к содержимому

Как проверить дробное ли число в python

  • автор:

Проверка на целое число—условие на проверку данных, введенных пользователем

Да, в данной ветке уже был, внимательно ознакомился. Все идеально, но там описывают числа с плавающей точкой, хотелось бы то-же самое, но для целых чисел.

1 ноя 2016 в 6:02
float меняете на int и будет тоже самое
1 ноя 2016 в 6:19

Взяв за основу: print(‘это число’ if isfloat(input(‘введите число’)) else ‘это не число’) и заменив «float» на «int» получил: «NameError: name ‘isint’ is not defined»

1 ноя 2016 в 6:58

Насколько я понял из ваших комментариев к другим ответам, вам нужно просто проверить, что строка содержит только цифры или минус на первой позиции. Это элементарно реализуется в несколько строчек.

1 ноя 2016 в 12:23

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

Чтобы проверить является ли строка введённая пользователем целым числом, можно воспользоваться int в try/except, похожим образом как показано в ответе на вопрос «Python 3 Проверка на дробное число введённое пользователем», порекомендованный @Alex.B, заменив float на int как @gil9red предложил и @slippyk явно показал:

def isint(s): try: int(s) return True except ValueError: return False 
>>> isint('10') True >>> isint('a') # не десятичная цифра False >>> isint('²') # верхний индекс False >>> isint('১') # Bengali (Unicode) True 

Это может сломаться, если ввод не строка, например:

>>> isint(0.5) # XXX не работает для float True >>> 0.5 .is_integer() False >>> from numbers import Integral >>> isinstance(0.5, Integral) False >>> isinstance(123, Integral) True >>> isinstance(1., Integral) # XXX float False >>> 1..is_integer() # но целое значение True >>> from fractions import Fraction >>> isint(Fraction(1, 2)) # XXX не работает для дробей True >>> isinstance(Fraction(1, 2), Integral) False >>> isinstance(Fraction(1), Integral) # XXX дробь False >>> Fraction(1) == 1 # даже если целое значение True 

Если вы хотите проверить, что переданная строка содержит только десятичные цифры и ничего более (к примеру, нет ‘+’ , ‘-‘ , ‘ ‘ , ‘\n’ символов в ней), то можно str.isdecimal использовать:

>>> '123'.isdecimal() True >>> '+123'.isdecimal() False >>> isint('+123') True >>> isint(' 123\n') True >>> ' 123\n'.isdecimal() False 

isdecimal() можно использовать, чтобы имена файлов, содержащие цифры, в «естественном» порядке отсортировать (как Windows-проводнике). См. Python analog of natsort function (sort a list using a “natural order” algorithm).

Если хотите несколько таких чисел из ввода извлечь, можно регулярное выражение использовать:

>>> import re >>> from datetime import datetime >>> date_string = '2016-11-01 23:04:05' >>> datetime(*map(int, re.findall(r'\d+', date_string))) datetime.datetime(2016, 11, 1, 23, 4, 5) 

Последнее, это возможно более простой, менее строгий (и эффективный) вариант для:

>>> datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S') datetime.datetime(2016, 11, 1, 23, 4, 5) 

Если вы хотите разрешить задавать целые числа в произвольном основании как в исходном коде Питона, то передайте base=0 :

>>> int('0b1110', 0) # binary ("01") 14 >>> int('0xcafe', 0) # hexadecimal 51966 

Проверьте, является ли переменная целым числом или нет в Python

В этом посте мы обсудим, как проверить, является ли переменная целым числом или нет в Python.

1. Использование isinstance() функция

Стандартное решение для проверки, является ли данная переменная целым числом или нет, использует isinstance() функция. Он возвращается True если первый аргумент является экземпляром второго аргумента.

if __name__ == ‘__main__’ :
isInt = isinstance ( x , int )
print ( isInt ) # True

Вы также можете использовать числовые абстрактные базовые классы вместо конкретных классов. Чтобы проверить целочисленное значение, вы можете использовать numbers.Integral Класс Python:

import numbers
if __name__ == ‘__main__’ :
isInt = isinstance ( x , numbers . Integral )
print ( isInt ) # True

2. Использование float.is_integer() функция

Если вам нужно рассмотреть числа с плавающей запятой со всеми нулями после запятой, рассмотрите возможность использования float.is_integer() функция. Он возвращается True если экземпляр с плавающей запятой конечен с целым значением и False в противном случае.

if __name__ == ‘__main__’ :
isInt = float ( x ) . is_integer ( )
print ( isInt ) # True

3. Использование int() функция

Наконец, вы можете использовать конструктор int для проверки целочисленных значений. Функция int(x) преобразует аргумент x до целого числа. Если x уже является целым числом или числом с плавающей запятой с целым значением, то выражение int(x) == x будет соответствовать действительности.

Проверка ввода, дробное ли число

Приветствую. Не могу предположить как можно сделать проверку в питоне на дробность числа(берём десятичные дроби).
Надеюсь кто-то подскажет.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Реализовать в классе сложение сумм, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число
Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя поля-ми.

Visual C++ проверка ввода на число, проверка на кирилицу
Суть ввести с клавиатуры нечто, и повторять ввод до тех пор пока введенное число не будет числом. .

Проверка ввода на число
Я только начинаю изучать c++ Помогите сделать простую проверку Нужно проверять вводимое.

Проверка ввода — число ли это, и целое ли
Как правильно сделать проверку ввода так, чтобы вводимое проверялось на то, число ли это, и целое.

Проверка правильности ввода: входит ли число в диапазон?
Необходимо ввести число в диапазоне от 1 до 8. Правильность ввода числа типа int уже проверена, но.

Проверка на целое число

Условие задачи:
Необходимо написать ф-цию is_int, которая будет проверять: является ли число целым. При этом должны учитываться числа вроде 7.00000, которые также являются целыми.

Буду признателен за советы в оптимизации кода или идеи по другим способам решения.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
def is_int(x): temp = str(x) # конвертируем в str для проверок i = 0 #счетчик while i  len(temp): if temp[i] == '.': # проверяем является ли целым / узнаем индекс нуля while i + 1  len(temp): # пробегаемся по индексам после "." if temp[i + 1] != '0': # если после "." не ноль - не Int return False i += 1 else: return True i += 1 else: return True # если "." нет - следовательно Int

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления
Запросите у пользователя два целых числа m и n. Если целое число m делится нацело на целое число.

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления
Запросите у пользователя два целых числа m и n. Если целое число m делится нацело на целое число n.

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

1 2 3 4 5 6
def is_int(n): return int(n) == float(n) print(is_int(1)) # true print(is_int(1.0)) # true print(is_int(1.2)) # false

Регистрация: 06.04.2017
Сообщений: 16
Можно вкратце принцип работы?

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

можно еще вариант, где проверка на исключения

1 2 3 4 5 6 7
def is_int(n): try: return int(n) == float(n) except ValueError: return -1 print(is_int('a')) # -1

приходит в функцию 1.0
int(1.0) = 1
float(1.0) = 1.0
1 == 1.0

приходит 1.1
int(1.1) = 1
float(1.1) = 1.1
1 != 1.1

Регистрация: 06.04.2017
Сообщений: 16
Очень круто. Спасибо
У меня кстати код сносный, или может есть типичные ошибки новичка?
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633

def is_int(n): return n%1 == 0

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

ЦитатаСообщение от mamedovvms Посмотреть сообщение

def is_int(n):
* return n%1 == 0

def is_int(n): return not(n%1)

2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633

ЦитатаСообщение от Jabbson Посмотреть сообщение

да можно и без скобок)))))

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

ЦитатаСообщение от mamedovvms Посмотреть сообщение

да можно и без скобок)))))
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Дано вещественное число A и целое число N (> 0). Используя один цикл, найти сумму
Дано вещественное число A и целое число N (> 0). Используя один цикл, найти сумму 1 + A + A^2+.

Дано вещественное число A и целое число N (> 0). Используя один цикл, найти значение выражения
Дано вещественное число A и целое число N (> 0). Используя один цикл, найти значение выражения 1.

проверка на целое число
Можно ли сделать проверку на ввод целого числа, если его тип сразу задается, как int? Просто это.

Проверка на целое число
Приветствую, я никак не могу исправить ошибку в проверке на целое число в StringGrid. Код и скрин.

Проверка целое ли число
В интернете много вариантов как это сделать но я того что мне надо так и не нашёл. Короче, надо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *