Cómo convertir una cadena a Int en Python (conversión segura y bases)
Aprenda cómo convertir una cadena a un número entero en Python usando la función int(). Maneje los errores de forma segura y convierta números de binario, octal o hexadecimal.
Descripción general
Convertir una representación de cadena de un número en un número entero real es una tarea frecuente en el desarrollo de aplicaciones. Este proceso, a menudo denominado conversión, es esencial cuando se trata de entradas sin procesar del usuario, lectura de archivos de configuración, análisis de argumentos de interfaces de línea de comandos o extracción de datos de la web. Dado que Python es un lenguaje fuertemente tipado, no se pueden realizar operaciones matemáticas en representaciones de cadenas de números sin convertirlas primero.
El constructor `int()` integrado de Python es la herramienta principal para esta conversión. En su forma más simple, pasar una cadena numérica (como `"42"`) a `int()` devuelve su equivalente entero. Sin embargo, pasar una cadena no numérica (como `"hello"`) o una cadena que represente un número de punto flotante (como `"3.14"`) generará un `ValueError`. Para escribir aplicaciones robustas, es una práctica estándar envolver las operaciones de conversión en un bloque "try-except" para manejar con elegancia las entradas inesperadas.
Más allá de la conversión estándar de base 10, la función `int()` acepta un argumento `base` opcional. Esto le permite analizar fácilmente cadenas que representan números en diferentes sistemas numéricos, como binario (base 2), octal (base 8) o hexadecimal (base 16). Por ejemplo, `int("1010", 2)` analiza correctamente la cadena binaria en el entero decimal `10`, lo que la convierte en una herramienta versátil para programación matemática especializada o de nivel inferior.
Código y salida de ejecución
Este script demuestra la conversión de una cadena a un número entero, el manejo de excepciones y la conversión de diferentes representaciones base.
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")
# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
result = int(invalid_str)
except ValueError:
print(f"Could not convert '{invalid_str}' to an integer.")
# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255Implementación paso a paso
- Pase la cadena numérica a la función int() incorporada.
- Envuelva sus operaciones de conversión en try...excepto los bloques ValueError para manejar formatos no válidos.
- Proporcione un segundo argumento (por ejemplo, base=16) para convertir valores de cadena escritos en otras bases.
Preguntas frecuentes
¿Cómo puedo convertir una cadena flotante como '12.34' en un número entero?
Primero debes convertirlo a flotante, luego a int: int(float("12.34")). Llamar a int("12.34") genera directamente un ValueError.
¿Cómo compruebo si una cadena se puede convertir de forma segura a un int?
Puede utilizar el método de cadena .isdigit(), pero tenga en cuenta que devuelve False para signos negativos o espacios en blanco. Un bloque try-except es la forma más sólida.
Temas relacionados
Aprenda las mejores técnicas de formato de cadenas en Python. Compare cadenas f modernas, formato() y formato de porcentaje con ejemplos de código.
Cómo manejar excepciones en PythonAprenda a manejar excepciones en Python usando los bloques try, except, else y finalmente. Escriba código Python libre de errores y resistente a fallos.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Cadenas de Python
Manipulación maestra de cadenas en Python. Aprenda métodos de cadenas, técnicas de corte, concatenación y formato con ejemplos de código claros y ejecutables.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
Decoradores de Python versus patrón de diseño decorador: las diferencias clave
Compare los decoradores de Python y el patrón de diseño de decorador clásico. Comprenda las diferencias entre el ajuste de funciones en tiempo de definición y la composición dinámica de objetos en tiempo de ejecución con código ejecutable.