Python: compruebe si la variable es un número

P

 

Introducción

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:

variable = 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:

True

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.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad