Python ofrece múltiples posibilidades para convertir las cadenas de texto en números y viceversa. Una tarea que es bastante habitual por ejemplo cuando se interactúa con usuarios, ya que estos siempre usan cadenas de texto para comunicarse. Por eso vamos a ver en esta ocasión cómo se pueden convertir los números en cadenas de texto y las cadenas en números en Python. Aunque en primer lugar vamos a ver los tipos de datos numéricos que existen en Python.
Tabla de contenidos
En Python existen cuatro tipos de datos numéricos: los enteros (integer
), los enteros largos (long
), los reales (float
) y los complejos (complex
).
Tanto los números enteros como los enteros largos se pueden usar para representar números sin decimales, tanto positivos como negativos. Permitiendo los enteros largos almacenar números más grandes que los enteros. Lo que se consigue a costa de ocupar más memoria, por lo que solamente se deben usar en caso de ser realmente necesarios.
Los números reales son aquellos que tienen decimales. Valores que se representan utilizando el estándar IEEE 754, por lo que equivale a los double
de C u otros lenguajes. Pudiéndose representar valores que van aproximadamente desee 2e-308
hasta 2e308
con una precisión de 15 decimales.
Finalmente, los números complejos son aquellos con una parte imaginaria, que en Python se denota con una j
. Para escribir un número complejo solamente tenemos que escribir dos números reales separados por el signo +
o -
y uno de ellos con una j
.
Algunos ejemplos de números en Python son:
entero = 10 largo = 22L real = 12.7 complejo = 10 + 12j
Las funciones que se pueden usar para convertir se llaman como los tipos de datos int()
, float()
y complex()
. A estas funciones se le debe pasar una cadena de texto con un número válido. En caso de que la cadena contenga letras u otros símbolos que no se puedan interpretar como números, las funciones devolverán una excepción.
int()
La mejor forma de ver el funcionamiento de la función int()
es con un ejemplo.
x = '22' y = '12' z = int(x) - int(y)
Lo que nos dará un número entero en z
igual a 10.
En caso de que el valor pueda ser un número real es mejor usar la función real()
o complex()
. Ya que si la cadena contiene un valor que no sea entero esta nos devolverá un error. Por ejemplo:
int('12.0')
Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '12.0'
Una ventaja de la función int()
es que los valores se pueden importar en bases diferentes a la decimal, como puede ser la binaria o la hexadecimal. Esto se pude conseguir simplemente indicando la base a la función mediante la propiedad base
, por ejemplo, en el caso binario:
int('1101100', base=2)
float()
La función float()
funciona de manera análoga a int()
, pero en este caso también admiten valores reales con un punto. Aunque tampoco pude caracteres que no sean numéricos o el punto.
x = float('22') y = float('22.1') z = x - y
Lo que nos devolverá el número -0.10000000000000142
. Algo que es habitual en los números reales donde siempre existe un pequeño error numérico.
complex()
Finalmente la función complex()
funciona de manera análoga pero con números complejos. En donde las cadenas de texto pueden contener una j
para indicar la parte compleja.
complex('1+3j')
Lo que nos devolverá el valor (1+3j)
.
Para convertir números en cadenas de texto se puede usar la función str()
o utilizar interpolación mediante el método format()
de las cadenas de texto. Con la ventaja de que en ambos casos se pueden convertir todos los tipos de números con los tres métodos.
str()
Esta es la función básica que nos permite convertir un número en una cadena de texto. Simple se le debe pasar un número como valor para convertirse en una cadena de texto. Por ejemplo, se puede usar para converitr
str(12) str(23.2) str(12 + 33j)
format()
Quizás esta sea la mejor opción para generar cadenas de texto con el valor numérico, ya que el valor se sitúa en la posición indicada. Simplemente en la cadena de texto deberemos situar {}
y usar el método format()
para asignar el valor.
'El saldo es {}'.format(123.21)
El saldo es 123.21
En caso de tener más de un valor se puede indicar los valores por posición, siendo 0 el primer valor que se pase a la función.
'El primer valor es {0} y el segundo {1}'.format(1, 2)
El primer valor es 1 y el segundo 2
Aunque también se le puede dar un nombre a cada una de las propiedades
'El primer valor es {primero} y el segundo {segundo}'.format(primero=10, segundo=20)
El primer valor es 10 y el segundo 20
En esta ocasión hemos visto cómo se pueden convertir los números en cadenas de texto y las cadenas en números en Python. Una tarea sencilla, pero que requiere mostrar atención a ciertos detalles.
Imagen de Thorsten Frenzel en Pixabay
En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…
Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…
En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…
Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…
Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…
Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…
This website uses cookies.