Introducción
Contenido
En este artículo, veremos algunos ejemplos de cómo verificar si una variable es un número en Python.
Python se escribe dinámicamente. No es necesario declarar un tipo de variable mientras se crea una instancia: el intérprete infiere el tipo en tiempo de ejecución:
Te puede interesar:Introducción a PyTorch para la clasificaciónvariable = 4
another_variable="hello"
Además, una variable se puede reasignar a un nuevo tipo en cualquier momento:
# Assign a numeric value
variable = 4
# Reassign a string value
variable="four"
Este enfoque, aunque tiene ventajas, también nos presenta algunos problemas. Es decir, cuando recibimos una variable, normalmente no sabemos de qué tipo es. Si esperamos un número, pero recibimos variable
, querremos comprobar si es un número antes de trabajar con él.
Uso de la función type ()
los type()
La función en Python devuelve el tipo de argumento que le pasamos, por lo que es una función útil para este propósito:
myNumber = 1
print(type(myNumber))
myFloat = 1.0
print(type(myFloat))
myString = 's'
print(type(myString))
Esto resulta en:
<class 'int'>
<class 'float'>
<class 'str'>
Por lo tanto, una forma de verificar el tipo es:
myVariable = input('Enter a number')
if type(myVariable) == int or type(myVariable) == float:
# Do something
else:
print('The variable is not a number')
Aquí, verificamos si el tipo de variable, ingresado por el usuario es un int
o un float
, procediendo con el programa si es así. De lo contrario, notificamos al usuario que ha ingresado una variable no numérica. Tenga en cuenta que si está comparando con varios tipos, como int
o float
, tienes que usar el type()
Funcionar en ambas ocasiones.
Si solo dijéramos if type(var) == int or float
, que aparentemente está bien, surgiría un problema:
myVariable="A string"
if type(myVariable) == int or float:
print('The variable a number')
else:
print('The variable is not a number')
Esto, independientemente de la entrada, devuelve:
The variable is a number
Esto se debe a que Python comprueba los valores verdaderos de las declaraciones. Las variables en Python se pueden evaluar como True
excepto por False
, None
, 0
y contenedores vacíos como []
, {}
, set()
, ()
, ''
o ""
.
Por lo tanto, cuando escribimos or float
en nuestro if
condición, es equivalente a escribir or True
que siempre evaluará a True
.
numeros Numero
Una buena forma de comprobar si una variable es un número es numbers
módulo. Puede comprobar si la variable es una instancia Number
clase, con el isinstance()
función:
import numbers
variable = 5
print(isinstance(5, numbers.Number))
Esto resultará en:
Te puede interesar:Resolver sistemas de ecuaciones lineales con Python’s NumpyTrue
Nota: Este enfoque puede comportarse de forma inesperada con tipos numéricos fuera del núcleo de Python. Ciertos marcos pueden tener noNumber
implementación numérica, en cuyo caso este enfoque devolverá falsamente False
.
Usando un bloque try-except
Otro método para verificar si una variable es un número es usar un bloque try-except. En el bloque try, convertimos la variable dada a un int
o float
. Ejecución exitosa del try
bloque significa que una variable es un número, es decir, int
o float
:
myVariable = 1
try:
tmp = int(myVariable)
print('The variable a number')
except:
print('The variable is not a number')
Esto funciona para ambos int
y float
porque puedes lanzar un int
a float
y un float
a una int
.
Si específicamente solo desea verificar si una variable es una de estas, debe usar la type()
función.
Conclusión
Python es un lenguaje escrito dinámicamente, lo que significa que podemos recibir un tipo de datos diferente al que esperamos.
En los casos en que queramos aplicar tipos de datos, vale la pena verificar si una variable es del tipo deseado. En este artículo, hemos cubierto tres formas de verificar si una variable es un Número en Python.