curso
Cómo convertir una cadena en un entero en Python
Los errores de tipo de datos son uno de los obstáculos más comunes en Python, especialmente para los principiantes. Un error común de tipo de datos se produce cuando los números se formatean como cadenas, lo que da lugar a cálculos erróneos, apreciaciones incorrectas o mensajes de error de plano.
En este tutorial, te mostraré cómo evitar estos errores y cómo convertir cadenas Python en enteros.
La respuesta rápida: Cómo convertir una cadena Python en un número entero
Si tu cadena representa un número entero (es decir, 12
), utiliza la función int()
para convertir una cadena en un número entero. Si tu cadena representa un número decimal (por ejemplo, 12.5
), utiliza la función float()
para convertir una cadena en un flotante. Puedes encontrar ejemplos a continuación:
# Converting a string into an integer
number_str = "10"
number_int = int(number_str)
print(number_int) # Output: 10
# Converting a string into a float
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float) # Output: 10.5
Tipos de datos en Python
Python es un lenguaje de tipado dinámico, que presenta una gran variedad de tipos de datos, desde cadenas y enteros hasta números en coma flotante y booleanos. Comprenderlos es crucial para una programación eficaz. A continuación encontrarás una lista no exhaustiva de los tipos de datos de Python:
- Cadena (
str
): Datos textuales entre comillas. Por ejemplogreeting = "Hello, World!"
- Integer (
int
): Números enteros sin componente fraccionario. Por ejemploage = 25
- Flotador (
float
): Números con punto decimal. Por ejemploheight = 5.9
- Booleano (
bool
): RepresentaTrue
oFalse
- Lista (
list
): Una colección ordenada de elementos que pueden ser de tipos de datos mixtos. Las listas son mutables, lo que permite modificarlas. Por ejemplo,colors = ["red", "blue", "green"]
- Diccionario (
dict
): Una colección de pares clave-valor, que te permite almacenar y recuperar datos mediante claves. Por ejemplo,person = {"name": "Alice", "age": 30}
Para saber más sobre los tipos de datos, lee este tutorial sobre Estructuras de Datos en Python en DataCamp.
¿Por qué convertir una cadena en un número entero?
Los tipos de datos correctos son esenciales para realizar cálculos precisos. Considera el siguiente ejemplo. Supongamos que tenemos dos números 5
y 10
que son cadenas. Si las sumamos, la respuesta sería 510
, ya que se están tratando como cadenas que se concatenan con el operador +
.
Para obtener la respuesta exacta (en este caso 15
), habría que convertirlos en números enteros antes de calcular la suma. Se trata de una simple ilustración, pero imagina que esto se aplica a un conjunto de datos sobre los ingresos de una empresa: puede conducir a malas decisiones empresariales.
# Summing two numbers that are actually strings
'5'+'10'# This returns 510
# Converting them to integers before summing them
int('5') + int('10') # This returns 15
Cómo convertir cadenas en enteros en Python
Cuando se trabaja con datos numéricos formateados como cadenas, a menudo es necesario convertir estas cadenas en números enteros para realizar cálculos u otras operaciones numéricas. Python proporciona una forma sencilla de conseguirlo utilizando la función int()
. Esta función toma una cadena como entrada y devuelve su representación entera, siempre que la cadena represente un número entero válido.
# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer) # Output: 42
Cómo convertir cadenas en flotantes en Python
En los casos en que la cadena represente un número con punto decimal, convertirla a un número entero sería inadecuado y daría lugar a un error. En su lugar, puedes convertir estas cadenas a flotantes utilizando la función float()
de Python. Utilizar tipos de datos flotantes es crucial sobre todo cuando se trabaja con datos muy precisos, como datos financieros o datos de medición de sensores.
# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float) # Output: 3.14
Problemas al convertir cadenas a números en Python
Al convertir cadenas en números, algunos escollos pueden provocar errores o resultados inesperados.
Convertir cadenas no numéricas
Si intentas convertir una cadena no numérica, como 'hello world'
, en un número, se producirá un error. Si quieres atrapar programáticamente cadenas que no se pueden convertir a enteros, prueba a utilizar un bloque try/except
para manejar esos casos con elegancia.
try:
invalid_number = int("hello world")
except ValueError:
print("This is not a number.")
Convertir cadenas flotantes en enteras
Convertir directamente una cadena que representa un flotante en un entero da como resultado ValueError
. Aunque puedes convertir una cadena que representa un entero en un flotante, no puedes hacer lo contrario. Aquí tienes un ejemplo del error que puedes obtener:
string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal)
# Returns ValueError: invalid literal for int() with base 10: '13.5'
Cuerdas con bases diferentes
Cuando hablamos de "bases" en los números, nos referimos al sistema de numeración en el que se expresa el número. La base más común es el 10, también conocido como sistema decimal, que es el que utilizamos en la vida cotidiana. Consta de 10 dígitos, del 0 al 9.
Sin embargo, existen otras bases y se utilizan en diversos campos, sobre todo en informática. Por ejemplo:
- Binario (Base 2): Sólo utiliza 0 y 1. Es el lenguaje fundamental de los ordenadores.
- Octal (Base 8): Utiliza dígitos del 0 al 7. Es menos común hoy en día, pero se utilizaba en sistemas informáticos antiguos.
- Hexadecimal (Base 16): Utiliza dígitos del 0 al 9 y letras de la A a la F (donde A=10 y F=15). Se utiliza mucho en informática, sobre todo para los códigos de color en el diseño web y las direcciones de memoria.
Cuando tengas una cadena que represente un número en una base distinta de 10, debes especificar la base para que Python pueda interpretarla correctamente. Aquí tienes un ejemplo utilizando un número hexadecimal:
# Convert a hexadecimal string to an integer
hex_string = "1A" # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16) # The '16' tells Python it's in base 16
print(converted_int) # Output: 26
Conclusión
Navegar por los tipos de datos y las conversiones en Python es una habilidad fundamental para la programación. Si sabes cómo convertir con precisión cadenas en enteros y flotantes, podrás evitar errores comunes y asegurarte de que tu manipulación de datos es correcta. Si quieres saber más sobre Python, consulta nuestra Hoja de trucos de Python para principiantes, nuestra guía sobre Cómo aprender Python y nuestros Cursos de Python.

Adel es educador de Ciencia de Datos, conferenciante y Evangelista en DataCamp, donde ha publicado varios cursos y formación en directo sobre análisis de datos, aprendizaje automático e ingeniería de datos. Le apasiona difundir las habilidades y la alfabetización en materia de datos en las organizaciones y en la intersección entre tecnología y sociedad. Tiene un máster en Ciencia de Datos y Análisis Empresarial. En su tiempo libre, puedes encontrarle pasando el rato con su gato Louis.
Preguntas frecuentes
¿Cómo comprobar si una cadena es un entero en Python?
Para comprobar si una cadena representa un número entero, puedes utilizar el método str.isdigit()
si la cadena sólo contiene dígitos y ningún signo (+/-) ni decimales:
string = "42"
if string.isdigit():
print("The string is an integer.")
else:
print("The string is not an integer.")
Para las cadenas que pueden incluir un signo (+/-), puedes utilizar un método más sólido:
string = "-42"
try:
int(string)
print("The string is an integer.")
except ValueError:
print("The string is not an integer.")
¿Cómo convertir un entero en una cadena en Python?
Utiliza la función str()
para convertir un número entero en una cadena. Por ejemplo:
number = 42
string_number = str(number)
print(string_number) # Output: "42"
¿Qué debo hacer si la cadena contiene un número decimal y quiero convertirlo en un número entero?
En primer lugar, convierte la cadena a un flotante utilizando la función float()
, y luego pásala a un entero utilizando int()
. Por ejemplo:
decimal_string = "13.5"
converted_integer = int(float(decimal_string))
print(converted_integer) # Output: 13
¡Continúa hoy tu viaje de aprendizaje de Python!
curso
Python intermedio
programa