Проверьте, является ли переменная целым числом или нет в Python
В этом посте мы обсудим, как проверить, является ли переменная целым числом или нет в Python.
1. Использование isinstance() функция
Стандартное решение для проверки, является ли данная переменная целым числом или нет, использует isinstance() функция. Он возвращается True если первый аргумент является экземпляром второго аргумента.
Вы также можете использовать числовые абстрактные базовые классы вместо конкретных классов. Чтобы проверить целочисленное значение, вы можете использовать numbers.Integral Класс Python:
2. Использование float.is_integer() функция
Если вам нужно рассмотреть числа с плавающей запятой со всеми нулями после запятой, рассмотрите возможность использования float.is_integer() функция. Он возвращается True если экземпляр с плавающей запятой конечен с целым значением и False в противном случае.
3. Использование int() функция
Наконец, вы можете использовать конструктор int для проверки целочисленных значений. Функция int(x) преобразует аргумент x до целого числа. Если x уже является целым числом или числом с плавающей запятой с целым значением, то выражение int(x) == x будет соответствовать действительности.
Проверка на целое число—условие на проверку данных, введенных пользователем
![]()
Чтобы проверить является ли строка введённая пользователем целым числом, можно воспользоваться int в try/except, похожим образом как показано в ответе на вопрос «Python 3 Проверка на дробное число введённое пользователем», порекомендованный @Alex.B, заменив float на int как @gil9red предложил и @slippyk явно показал:
Это может сломаться, если ввод не строка, например:
Если вы хотите проверить, что переданная строка содержит только десятичные цифры и ничего более (к примеру, нет ‘+’ , ‘-‘ , ‘ ‘ , ‘\n’ символов в ней), то можно str.isdecimal использовать:
isdecimal() можно использовать, чтобы имена файлов, содержащие цифры, в «естественном» порядке отсортировать (как Windows-проводнике). См. Python analog of natsort function (sort a list using a “natural order” algorithm).
Если хотите несколько таких чисел из ввода извлечь, можно регулярное выражение использовать:
Последнее, это возможно более простой, менее строгий (и эффективный) вариант для:
Если вы хотите разрешить задавать целые числа в произвольном основании как в исходном коде Питона, то передайте base=0 :
How to check if a number is an integer in python?
In mathematics, integers are the number that can be positive, negative, or zero but cannot be a fraction. For example, 3, 78, 123, 0, -65 are all integer values. Some floating-point values for eg. 12.00, 1.0, -21.0 also represent an integer. This article discusses various approaches to check if a number is an integer in python.
Check if a number is an integer using the type() function
Please enable JavaScript
In Python, we have a built-in method called type() that helps us to figure out the type of the variable used in the program. The syntax for type() function is given below.
In the following example, we declare a function check_integer to check if a number num is an integer value or not. The program checks if the type(num) is equal to the int datatype. If the condition returns True if block is executed. Otherwise, else block is executed.
The above code returns the output as
Check if a number is an integer using the isinstance() function
The isinstance() method is an inbuilt function in python that returns True if a specified object is of the specified type. Otherwise, False. The syntax for instance() function is given below.
In the following example, we declare a function check_integer to check if a number num is an integer value or not. The program checks if the num is of int data type using the isinstance(num, int) function. If the condition is True if block is executed, Otherwise else block is executed.
The above code returns the output as
The number such as 12.0, -134.00 are floating-point values, but also represent an integer. If these values are passed as an argument to the type() or isinstance() function, we get output as False.
Checking if a floating-point value is an integer using is_integer() function
In python, the is_integer() function returns True if the float instance is a finite integral value. Otherwise, the is_integer() function returns False. The syntax for is_integer() function is given below.
In the following example, we declare a function check_integer to check if a floating-point number f is an integer value or not. If the f.is_integer() function evaluates to True, if block is executed. Otherwise, else block is executed.
The above code returns the output as
Checking if a floating-point value is an integer using split() + replace()
In the following example, we declare a function check_integer to check if a number num is an integer value or not. The program checks if the type(int) is equal to the integer data type. If the condition is True if block is executed.
If the condition is False, the number is a floating-point value, and hence else block is executed. In the else block, we check if the float instance is a finite integral value. Consider a number num = 12.0. The number num also represents an integer.
We convert the number num to string data type using str() function and store it in the variable str_num = ‘12.0’. The string str_num is splitted from decimal point and is assigned to the variable list_1 = [’12’, ‘0’]. The element at position 1 of list_1 gives the decimal part of the number and is stored in variable ele.
We replace every ‘0’ character in the string ele with a blank space and assign the result to variable str_1. If the length of the str_1 is 0, then the floating instance is also an integer.
The above code returns the output as
Recommended Readings

0 results report this ad
Проверка на число
Достаточно часто требуется узнать: записано ли в переменной число. Такая ситуация может возникнуть при обработке введенных пользователем данных. При чтении данных из файла или при обработке полученных данных от другого устройства.
В Python проверка строки на число можно осуществить двумя способами:
- Проверить все символы строки что в них записаны цифры. Обычно используется для этого функция isdigit.
- Попытаться перевести строку в число. В Python это осуществляется с помощью методов float и int. В этом случае обрабатывается возможное исключение.
Рассмотрим как применяются эти способы на практике.
isdigit, isnumeric и isdecimal
У строк есть метод isdigit, который позволяет проверить, являются ли символы, являются ли символы, из которых состоит строка цифрами. С помощью этого метода мы можем проверить, записано ли в строку целое положительное число или нет. Положительное — это потому, что знак минус не будет считаться цифрой и метод вернет значение False.
Если в строка будет пустой, то функция возвратит False.
Методы строки isnumeric и isdecimal работают аналогично. Различия в этих методах только в обработке специальных символов Unicode. А так как пользователь будет вводить цифры от 0 до 9, а различные символы, например, дробей или римских цифр нас не интересуют, то следует использовать функцию isdigit.
Проверка с помощью исключения
Что же делать, если требуется проверить строку на отрицательное число. В Python с помощью isdigit не удастся определить отрицательное число или число с плавающей точкой. В этом случае есть универсальный и самый надежный способ. Надо привести строку к вещественному числу. Если возникнет исключение, то значит в строке записано не число.