Dominando conversión y casting de tipos en Python: Guía completa
Conversión de tipos y casting en Python
En este artículo, aprenderá sobre la conversión de tipos y usos de la conversión de tipos.
Antes de aprender Conversión de Tipos en Python, debería tener conocimiento sobre Tipos de Datos en Python.
Conversión de tipos
El proceso de convertir el valor de un tipo de dato (entero, string, float, etc.) a otro tipo de dato se llama conversión de tipos. Python tiene dos tipos de conversión de tipos.
- Conversión de tipo implícita
- Conversión de tipo explícita
Conversión de tipo implícita
En la conversión de tipo implícita, Python convierte automáticamente un tipo de dato a otro. Este proceso no necesita participación del usuario.
Veamos un ejemplo donde Python promueve la conversión del tipo de dato inferior (entero) al tipo de dato superior (float) para evitar pérdida de datos.
Ejemplo 1: Convertir entero a float
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("tipo de dato de num_int:",type(num_int))
print("tipo de dato de num_flo:",type(num_flo))
print("Valor de num_new:",num_new)
print("tipo de dato de num_new:",type(num_new))
Cuando ejecutamos el programa anterior, la salida será:
tipo de dato de num_int: <class 'int'> tipo de dato de num_flo: <class 'float'> Valor de num_new: 124.23 tipo de dato de num_new: <class 'float'>
En el programa anterior,
- Sumamos dos variables num_int y num_flo, almacenando el valor en num_new.
- Observamos el tipo de dato de los tres objetos respectivamente.
- En la salida, vemos que el tipo de dato de num_int es
enteromientras que el tipo de dato de num_flo esfloat. - También vemos que num_new tiene tipo de dato
floatporque Python siempre convierte tipos de datos menores a mayores para evitar pérdida de datos.
Ahora, intentemos sumar un string y un entero, y veamos cómo Python lo maneja.
Ejemplo 2: Adición de string(tipo superior) y entero(tipo inferior)
num_int = 123
num_str = "456"
print("Tipo de dato de num_int:",type(num_int))
print("Tipo de dato de num_str:",type(num_str))
print(num_int+num_str)
Cuando ejecutamos el programa anterior, la salida será:
Tipo de dato de num_int: <class 'int'> Tipo de dato de num_str: <class 'str'> Traceback (most recent call last): File "python", line 7, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
En el programa anterior,
- Sumamos dos variables num_int y num_str.
- Como vemos en la salida, obtuvimos
TypeError. Python no puede usar Conversión Implícita en tales condiciones. - Sin embargo, Python tiene una solución para este tipo de situaciones conocida como Conversión Explícita.
Conversión de tipo explícita
En la Conversión de Tipo Explícita, los usuarios convierten el tipo de dato de un objeto al tipo de dato requerido. Usamos funciones predefinidas como int(), float(), str(), etc. para realizar conversión de tipo explícita.
Este tipo de conversión también se llama typecasting porque el usuario castea (cambia) el tipo de dato de los objetos.
Sintaxis:
<tipo_dato_requerido>(expresión)
El typecasting puede hacerse asignando la función del tipo de dato requerido a la expresión.
Ejemplo 3: Adición de string y entero usando conversión explícita
num_int = 123
num_str = "456"
print("Tipo de dato de num_int:",type(num_int))
print("Tipo de dato de num_str antes de Type Casting:",type(num_str))
num_str = int(num_str)
print("Tipo de dato de num_str después de Type Casting:",type(num_str))
num_sum = num_int + num_str
print("Suma de num_int y num_str:",num_sum)
print("Tipo de dato de la suma:",type(num_sum))
Cuando ejecutamos el programa anterior, la salida será:
Tipo de dato de num_int: <class 'int'> Tipo de dato de num_str antes de Type Casting: <class 'str'> Tipo de dato de num_str después de Type Casting: <class 'int'> Suma de num_int y num_str: 579 Tipo de dato de la suma: <class 'int'>
En el programa anterior,
- Sumamos variables num_str y num_int.
- Convertimos num_str de string(superior) a entero(inferior) usando función
int()para realizar la adición. - Después de convertir num_str a valor entero, Python puede sumar estas dos variables.
- Obtuvimos valor num_sum y tipo de dato entero.
Puntos clave a recordar
- Conversión de Tipo es la conversión de objeto de un tipo de dato a otro tipo de dato.
- Conversión de Tipo Implícita es realizada automáticamente por el intérprete de Python.
- Python evita pérdida de datos en Conversión de Tipo Implícita.
- Conversión de Tipo Explícita también se llama Type Casting, los tipos de dato de objetos se convierten usando funciones predefinidas por el usuario.
- En Type Casting, puede ocurrir pérdida de datos al forzar el objeto a un tipo de dato específico.
python
- Dominando la Conversión de Tipos en C#: Implícita, Explícita, Parse y Métodos Convert
- Palabras clave e identificadores en Python: Dominando palabras reservadas y convenciones de nomenclatura
- Sentencias, indentación y comentarios en Python: Guía clara
- Variables, constantes y literales en Python – Guía completa
- Dominando tipos de datos en Python: Guía práctica
- Dominando E/S e importación de módulos en Python: Guía práctica
- Entendiendo variables globales, locales y nonlocal en Python
- Dominando Números, Conversión de Tipos y Matemáticas en Python
- Dominando Operaciones de Directorios y Archivos en Python
- Dominando Errores y Excepciones Integradas en Python
- Dominando el Casting de Tipos en Java: Desde Ensanchamiento hasta Estrechamiento y Más Allá