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

Введение В этой статье мы рассмотрим несколько примеров того, как проверить, является ли переменная числом в Python. Python имеет динамическую типизацию. Нет необходимости объявлять тип переменной во время ее создания - интерпретатор определяет тип во время выполнения: variable = 4 another_variable = 'hello' Кроме того, переменную можно переназначить новому типу в любой момент времени: # Назначьте числовое значение value variable = 4 # Переназначить строковое значение переменной = 'four'. Этот подход при наличии рекламы

Вступление

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

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

 variable = 4 
 another_variable = 'hello' 

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

 # Assign a numeric value 
 variable = 4 
 
 # Reassign a string value 
 variable = 'four' 

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

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

Функция type() в Python возвращает тип аргумента, который мы передаем ей, поэтому это удобная функция для этой цели:

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

Это приводит к:

 <class 'int'> 
 <class 'float'> 
 <class 'str'> 

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

 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 , продолжая выполнение программы, если это так. В противном случае мы уведомляем пользователя о том, что он ввел нечисловую переменную. Имейте в виду, что если вы сравниваете несколько типов, например 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') 

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

 The variable is a number 

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

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

числа.

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

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

Это приведет к:

 True 

Примечание. Этот подход может неожиданно работать с числовыми типами вне ядра 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()

Заключение

Python - это язык с динамической типизацией, что означает, что мы можем получить тип данных, отличный от того, который мы ожидаем.

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

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus