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

Как проверить целое ли число в питоне

  • автор:

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

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

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 возникает необходимость проверить, является ли значение переменной целым числом. Это может быть полезно в различных ситуациях, например, при валидации пользовательского ввода или при обработке данных разного типа. Рассмотрим пример.

value = "123"

Если попытаться использовать это значение в математических операциях, возникнет ошибка, так как это строка, а не число. Для избежания таких ошибок и проводится проверка типа переменной.

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

Python предоставляет встроенную функцию isinstance() , которая позволяет проверить, принадлежит ли объект к определенному классу или типу данных.

value = 123 print(isinstance(value, int))

В этом примере isinstance() вернет True , если значение является целым числом ( int ), и False в противном случае.

Проверка на целочисленность для чисел с плавающей точкой

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

value = 123.0 print(value.is_integer())

В этом примере value.is_integer() вернет True , если число с плавающей точкой является целым числом, и False в противном случае.

Заключение

Проверка, является ли переменная целым числом, в Python — простая и полезная операция, которую можно легко реализовать с помощью встроенных функций и методов. Она помогает избежать ошибок при выполнении операций с переменными разных типов.

Проверка, является ли строка целым числом в Python без использования try/except

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

Предположим, есть следующие строки:

s1 = '123' s2 = '-456' s3 = '7.89' s4 = 'abcdef'

Необходимо проверить, являются ли эти строки целыми числами. Очевидно, что только s1 и s2 являются целыми числами, в то время как s3 является десятичным числом, а s4 — вообще не числом.

Один из распространенных подходов к решению этой проблемы — использовать конструкцию try/except, однако, она может быть избыточной и не всегда желательной. К счастью, в Python существуют другие способы.

Один из таких способов — использование метода isdigit() , который возвращает True , если строка содержит только цифры. Однако, данный метод не справится с отрицательными числами и числами с плавающей точкой.

print(s1.isdigit()) # True print(s2.isdigit()) # False, потому что есть знак '-' print(s3.isdigit()) # False print(s4.isdigit()) # False

Другой способ — использовать регулярные выражения. В Python для этого есть модуль re . Можно создать шаблон, который будет соответствовать только целым числам, и затем проверять, соответствует ли строка этому шаблону.

import re def is_int(s): return bool(re.match(r'^-?\d+$', s)) print(is_int(s1)) # True print(is_int(s2)) # True print(is_int(s3)) # False print(is_int(s4)) # False

Таким образом, задача проверки, является ли строка целым числом, может быть решена в Python без использования try/except.

Python Unittest Как проверить, является ли число Целым и Не отрицательным?

Который получает n число, и если это число простое то возвращает True или False если нет.

Вот пример кода Unittest.

import unittest class PrimeUnityTest(unittest.TestCase): def test_Int(self): self.assertTrue(isPrime(5.8), 'N is not Integer!') def test_neg(self) self.assertTrue(isPrime(-2), 'N is Negative Number!')

Как Правильно проверить является ли тип числа N → Int а не Float, и проверить число на отрицательно, с помощью каких assert методов можно это сделать ?

  • Вопрос задан более трёх лет назад
  • 4513 просмотров

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

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