Int, float y complex con Python

Los tipos de datos int, float y complex en Python representan a los números. Int representa los números positivos y negativos sin decimales; float, los números con decimales positivos y negativos, y complex, los números complejos, siendo ‘j’ la parte imaginaria.

numero_int = 10
numero_float = 1.234212
numero_negativo = -10.2341234
numero_complejo = 5j

print(numero_negativo)

# -10.2341234

Podemos ver los tipos de estos números llamando a la función type().

print(type(numero_int))
# <class 'int'>

print(type(numero_float))
# <class 'float'>

print(type(numero_complejo))
# <class 'complex'>

Número entero Int con Python

Los números enteros o int en Python son los que representan números no decimales, tanto si son números positivos como negativos.

En Python podemos representar casi cualquier número, ya que es el propio Python el que se encarga de asignar más o menos memoria al número. Si utilizamos la función getsizeof(), sabremos el espacio que se está destinando en memoria para este número. Para utilizar esta función, tendremos que importar el módulo sys.

import sys

numero = 1000
sys.getsizeof(numero)
# 28

numero = 1000000000000000000000000000000000000000
sys.getsizeof(numero)
# 44

Se puede representar int de otras formas.

numero = 1_420_000
print(type(numero))
# <class 'int'>
print(numero)
# 1420000

Si intentamos representar números de un tamaño peculiar, podemos encontrarnos en situaciones similares a esta:

numero = 20e200 * 20e200
print(numero)
# inf

numero = 2e300 ** 2
print(numero)
# OverflowError: (34, 'Result too large')

Podemos convertir otros tipos de datos a int.

numero = '100'
print(type(numero))
# <class 'str'>

numero = int(numero)
print(type(numero))
# <class 'int'>

numero_decimal = '100.5'
print(int(numero_decimal))
# ValueError: invalid literal for int() with base 10: '100.5'

numero_float = 100.5
print(int(numero_float))
# 100
numero = int(numero_float)
print(type(numero))
# <class 'int'>

numero_complejo = 10j
print(int(numero_complejo))
# TypeError: int() argument must be a string, a bytes-like object or a real number, not 'complex'

Función dir en Python para Int

Si llamamos a la función dir(int), esta nos va a devolver una lista, bastante extensa, de todos los atributos y métodos de los que dispone. Puedes hacer la prueba en un terminal.

numero = 14
dir(numero)

Método to_bytes in Python

Este método devuelve la representación del número entero utilizando length bytes. Con el argumento byteorder, determinamos si queremos que el byte más significativo sea el primero del array o el último.

numero = 1
print(numero.to_bytes(3, byteorder = 'little'))
# b'\x01\x00\x00'

print(numero.to_bytes(5, byteorder = 'big'))
# b'\x00\x00\x00\x00\x01'

numero = 12
print(numero.to_bytes(1, byteorder = 'big'))
# b'\x0c'

Método as_integer_ratio

Devuelve un par de enteros con una proporción exactamente igual al flotante original y con un denominador positivo.

numero = -4.234
print(numero.as_integer_ratio())

# (-2383530102785835, 562949953421312)

Método isinstance in Python

Comprueba si un objeto es de tipo int en Python.

numero = 10
print(isinstance(numero, int))
# True

numero_decimal = 10.23
print(isinstance(numero_decimal, float))
# True

print(isinstance(numero_decimal, int))
# False

print(isinstance(numero, float))
# False

Número con decimales Float con Python

El tipo float en Python representa números positivos y negativos con decimales. En Python no existen diferencias de precisión, ya que cualquier número decimal es almacenado como float.

numero = 1.1442
print(type(numero))

# <class 'float'>

Hay que tener muy en cuenta que los números float no tienen lo que se podría llamar precisión infinita.

numero_decimal = 5.99999999999999999
print(numero_decimal)

# 6.0

Los números float en Python, de la misma forma que los int, se pueden crear también a partir de una cadena.

numero = '124.10000'
print(type(numero))
# <class 'str'>

numero = float(numero)
print(type(numero))
# <class 'float'>
print(numero)
# 124.1

También se pueden declarar variables de tipo float utilizando exponentes, por ejemplo 100.24 multiplicado por 10 elevado a 15.

numero_alto = 100.24e15
print(type(numero_alto))
# <class 'float'>
print(numero_alto)
# 1.0024e+17

numero_bajo = 2e2
print(type(numero_bajo))
# <class 'float'>
print(numero_bajo)
# 200.0

numero_bajo_n = 2e-2
print(type(numero_bajo_n))
# <class 'float'>
print(numero_bajo_n)
# 0.02

Python también utiliza el exponente para mostrar números float grandes.

numero = 100000000000000000000.0
print(numero)

# 1e+20

Para obtener más información sobre los valores de float, podemos echar un vistazo al apartado float_info del módulo sys.

import sys

print(sys.float_info.min)
# 2.2250738585072014e-308

print(sys.float_info.max)
# 1.7976931348623157e+308

print(sys.float_info.epsilon)
# 2.220446049250313e-16

print(sys.float_info.dig)
# 15

Podemos convertir fácilmente otros tipos de datos en float.

numero = '100.1'
print(type(numero))
# <class 'str'>

numero = float(numero)
print(type(numero))
# <class 'float'>

numero = 100
numero_decimal = float(numero)
print(type(numero_decimal))
# <class 'float'>
print(numero_decimal)
# 100.0

numero_complejo = 10j
print(float(numero_complejo))
# TypeError: float() argument must be a string or a real number, not 'complex'

Función dir en Python para float

Si llamamos a la función dir(float), esta nos va a devolver una lista, bastante extensa, de todos los atributos y métodos de los que dispone. Puedes hacer la prueba en un terminal y jugar con algunos métodos.

dir(float)

Número complejo Complex con Python

Los números complejos suelen utilizarse en computación científica y están compuestos por una parte real y otra imaginaria.

numero_complejo = 2 + 4j

# Número complejo
print(numero_complejo)
# (2+4j)

# Parte real del número
print(numero_complejo.real)
# 2.0

# Parte imaginaria
print(numero_complejo.imag)
# 4.0

# La misma parte real y una parte imaginaria con signo opuesto.
print(numero_complejo.conjugate())
# (2-4j)

Este es un enlace a la documentación oficial de Python sobre números complejos. Desde este otro puedes leer algo más de información sobre números complejos en Wikipedia.

Realizamos algunas operaciones básicas con números complejos en Python. Podemos utilizar los operadores aritméticos de suma, resta, multiplicación y división.

numero_complejo = 2 + 4j
print(numero_complejo * 2)
# (4+8j)

numero_complejo = 2 + 4j
print(numero_complejo - 2)
# 4j

numero_complejo = 2 + 4j
otro_numero_complejo = 12 + 41j
print(numero_complejo + otro_numero_complejo)
# (14+45j)

Función dir en Python para complex

Si llamamos a la función dir(complex), esta nos va a devolver una lista, bastante extensa, de todos los atributos y métodos de los que dispone. Puedes hacer la prueba en un terminal y jugar con algunos métodos.

dir(complex)

Dejar un comentario

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