Проверка является ли символ числом python

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

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

Проверка на число с помощью метода isdigit()

isdigit() это стандартный строковой метод языка Python, который возвращает True , если строка состоит минимум из одного символа, и все символы строки являются цифрами. В противном случае возвращает False .

>>> str = "35" >>> str.isdigit() True >>> str = "bear" >>> str.isdigit() False >>> str = "bear35" >>> str.isdigit() False >>> str = "3.5" >>> str.isdigit() False

Стоит обратить внимание на последнюю проверку из примера выше. Строка содержащая число с плавающей точкой (float) – 3.5 , тоже не прошло проверку. Поскольку остальные символы, включая знак минуса и точку, не являются цифрами, то метод isdigit() также будет возвращать False при проверке отрицательных чисел, и чисел с плавающей точкой.

Читайте также:  Css first line padding

Проверка на число с помощью конструкции Try-Except

Чтобы избежать промахов, в случаях когда строка содержит отрицательное число или число с плавающей точкой, используем конструкцию Try-Except для обработки исключений:

def is_number(str): try: float(str) return True except ValueError: return False

В функции is_number() , на третьей строке происходит попытка преобразования строки в число с плавающей точкой. Если успешно, возвращается True , если строка кроме цифр, знака минуса и точки, содержит другие символы, программа вернет False .

>>> is_number('10') True >>> is_number('3.5') True >>> is_number('-5') True >>> is_number('five') False

Вот такие два простых способа, чтобы проверить, является ли строка числом.

Источник

Python: проверка, является ли переменная числом

В этой статье мы рассмотрим несколько примеров того, как проверить, является ли переменная числом в Python.

Python имеет динамическую типизацию. Нет необходимости объявлять тип переменной во время ее создания — интерпретатор определяет тип во время выполнения:

variable = 4 another_variable = 'hello' 

Кроме того, переменную можно переназначить новому типу в любой момент:

# Присвойте числовое значение variable = 4 # Переназначить строковое значение variable = 'four' 

Этот подход, имея преимущества, также знакомит нас с несколькими проблемами. А именно, когда мы получаем переменную, мы обычно не знаем, какого она типа. Если мы ожидаем число, но получаем неопределенный variable , мы захотим проверить, является ли он числом, прежде чем выполнять какие-то действия.

Использование функции type()

В Python функция type() возвращает тип аргумента:

myNumber = 1 print(type(myNumber)) myFloat = 1.0 print(type(myFloat)) myString = 's' print(type(myString)) 

Таким образом, способ проверки типа:

myVariable = input('Enter a number') if type(myVariable) == int or type(myVariable) == float: # Do something else: print('The variable is not a number') 

Здесь мы проверяем, является ли тип переменной, введенной пользователем, int или float , продолжая выполнение программы, если это так. В противном случае мы уведомляем пользователя, что он ввел переменную, отличную от Number. Помните, что если вы сравниваете несколько типов, например int или float , вам придется использовать эту type() функцию оба раза.

Если бы мы просто сказали if type(var) == int or float , что вроде бы нормально, возникла бы проблема:

myVariable = 'A string' if type(myVariable) == int or float: print('The variable a number') else: print('The variable is not a number') 

Это, независимо от ввода, возвращает:

Это потому, что Python проверяет значения истинности утверждений. Переменные в Python могут быть оценены как True за исключением False , None , 0 и пустых [] , <> , set() , () , » или «» .

Следовательно, когда мы пишем or float в нашем условии, это эквивалентно записи or True , которая всегда будет возвращать True .

numbers.Number

Хороший способ проверить, является ли переменная числом — это модуль numbers . Вы можете проверить, является ли переменная экземпляром класса Number , с помощью функции isinstance() :

import numbers variable = 5 print(isinstance(5, numbers.Number))

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

Использование блока try-except

Другой способ проверить, является ли переменная числом — использовать блок try-except. В блоке try мы преобразуем данную переменную в int или float . Успешное выполнение блока try означает, что переменная является числом, то есть либо int , либо float :

myVariable = 1 try: tmp = int(myVariable) print('The variable a number') except: print('The variable is not a number')

Это работает как для int, так и для float, потому что вы можете привести int к float и float к int.

Если вы специально хотите только проверить, является ли переменная одной из них, вам следует использовать функцию type() .

String.isnumeric()

В Python isnumeric() — это встроенный метод, используемый для обработки строк. Методы issnumeric() возвращают «True», если все символы в строке являются числовыми символами. В противном случае он возвращает «False».
Эта функция используется для проверки, содержит ли аргумент все числовые символы, такие как: целые числа, дроби, нижний индекс, верхний индекс, римские цифры и т.д. (Все написано в юникоде)

string = '123ayu456' print(string.isnumeric()) string = '123456' print( string.isnumeric()) 

String.isdigit()

Метод isdigit() возвращает истину, если все символы являются цифрами, в противном случае значение False.

Показатели, такие как ², также считаются цифрами.

print("\u0030".isdigit()) # unicode for 0 print("\u00B2".isdigit()) # unicode for ² 

Источник

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

Достаточно часто требуется узнать: записано ли в переменной число. Такая ситуация может возникнуть при обработке введенных пользователем данных. При чтении данных из файла или при обработке полученных данных от другого устройства.

В Python проверка строки на число можно осуществить двумя способами:

  • Проверить все символы строки что в них записаны цифры. Обычно используется для этого функция isdigit.
  • Попытаться перевести строку в число. В Python это осуществляется с помощью методов float и int. В этом случае обрабатывается возможное исключение.

Рассмотрим как применяются эти способы на практике.

isdigit, isnumeric и isdecimal

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

a = '0251' print(a.isdigit()) True

Если в строка будет пустой, то функция возвратит False.

Методы строки isnumeric и isdecimal работают аналогично. Различия в этих методах только в обработке специальных символов Unicode. А так как пользователь будет вводить цифры от 0 до 9, а различные символы, например, дробей или римских цифр нас не интересуют, то следует использовать функцию isdigit.

Проверка с помощью исключения

Что же делать, если требуется проверить строку на отрицательное число. В Python с помощью isdigit не удастся определить отрицательное число или число с плавающей точкой. В этом случае есть универсальный и самый надежный способ. Надо привести строку к вещественному числу. Если возникнет исключение, то значит в строке записано не число.

Приведем функцию и пример ее использования:

def is_number(str): try: float(str) return True except ValueError: return False a = '123.456' print(is_number(a)) True

Для целых чисел

Аналогично можно сделать и проверку на целое число:

def is_int(str): try: int(str) return True except ValueError: return False a = '123.456' print(is_int(a)) False

Источник

Python операции со строками

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

isalnum Python

Метод isalnum python возвращает значение True , в случае, если все символы в строке являются буквами и цифрами. В противном случаем метод isalnum() вернет нам значение False .

Пример 1. Работа isalnum()

 
name = "M234onica" print(name.isalnum()) # С пробелом name = "M3onica Gell22er " print(name.isalnum()) name = "Mo3nicaGell22er" print(name.isalnum()) name = "133" print(name.isalnum()) #Результат

Пример 2. Работа isalnum()

 
name = "M0n1caG3ll3r" if name.isalnum() == True: print("Все символы строки (name) являются буквами и цифрами.") else: print("Символы не являются буквенно-цифровыми.")

isalpha Python

Метод isalpha Python, проверяет являются ли все символы в строке алфавитными буквами, в случае если это так, возвращает True , иначе False .

Пример 1. Работа isalpha

 
name = "Monica" print(name.isalpha()) # С пробелом name = "Monica Geller" print(name.isalpha()) # С цифрами name = "Mo3nicaGell22er" print(name.isalpha()) #Результат

Пример 2. Работа isalpha

 
name = "MonicaGeller" if name.isalpha() == True: print("Все строки являются буквенными") else: print("Не являются буквенными") #Результат
All characters are alphabets

Python isdecimal

Метод Python isdecimal проверяет, есть ли в строке десятичные символы. В случае если десятичные символы присутствуют, то он возвращает нам значение True , иначе возвращает значение False .

Пример 1. Работа с isdecimal

 
s = "28212" print(s.isdecimal()) # contains alphabets s = "32ladk3" print(s.isdecimal()) # contains alphabets and spaces s = "Mo3 nicaG el l22er" print(s.isdecimal()) #Результат

Так же существуют еще два метода isdigit() и isnumeric() , которые так же проверяют содержит ли строка цифровые символы, советую вам так же с ними ознакомиться.

isdigit Python

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

 
str1 = '342' print(str1.isdigit()) str2 = 'python' print(str2.isdigit()) # Результат: True # False

Пример. Работа с методом isdigit

 
s = "28212" print(s.isdigit()) # Содержит буквы и цифры s = "Mo3 nicaG el l22er" print(s.isdigit()) #Результат

В Python надстрочные и подстрочные индексы так же считаются цифровым символом. Соответственно, в случае если в строке содержатся такие символы, то метод isdigit() вернет нам значение True .

Римские цифры к примеру считаются цифровыми символами, но не цифрами, соответственно метод isdigit() вернет нам значение false .

Для проверки, является ли символ числовым, вы можете воспользоваться методом isnumeric() .

islower Python

Метод islower python проверяет являются ли все буквы в строке, буквами нижнего регистра. В случае, если все буквы являются буквами нижнего регистра, метод islower() вернет нам значение True , в случае если в строке содержится хотя бы один заглавный символ, мы получим значение False .

 
s = 'this is good' print(s.islower()) s = 'th!s is a1so g00d' print(s.islower()) s = 'this is Not good' print(s.islower()) #Результат

Как использовать метод islower() в программе?

 
s = 'this is good' if s.islower() == True: print('Does not contain uppercase letter.') else: print('Contains uppercase letter.') s = 'this is Good' if s.islower() == True: print('Does not contain uppercase letter.') else: print('Contains uppercase letter.') #Результат Does not contain uppercase letter. Contains uppercase letter.

Совместно с методом islower() настоятельно советую ознакомиться с методом capitalize().

Python isnumeric

Метод isnumeric() возвращает значение True , в случае если все символы в строке являются числовыми символами. В противном случае метод isnumeric() вернет значение False .

Немного разберемся, что является числовым символом в Python.

  • Десятичные символы — 0,1,2,3,4,5
  • Цифры — Нижний и верхний индекс
  • Символы — Дробь, римские цифры, числители валют

Пример. Работа с методом isnumeric()

 
s = '1242323' print(s.isnumeric()) #s = '²3455' s = '\u00B23455' print(s.isnumeric()) # s = '½' s = '\u00BD' print(s.isnumeric()) s = '1242323' s='python12' print(s.isnumeric()) #Результат

isupper Python

Метод isupper Python проверяет находятся ли все символы в строке в верхнем регистре? Метод isupper() возвращает два параметра.

  • True — в случае если все символы в строке находятся в верхнем регистре
  • False — в случае если все символы в строке находятся в нижнем регистре

Пример 1: Возвращаемое значение isupper()

 
# Пример строки string = "THIS IS GOOD!" print(string.isupper()); # Цифры и буквы string = "THIS IS ALSO G00D!" print(string.isupper()); # Строка с нижним регистром string = "THIS IS not GOOD!" print(string.isupper()); #Результат

Источник

Оцените статью