Python: compruebe si la variable es un número

     

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *