Conversión de tipos y resolución de tipos en Python

Una parte importante del programa consiste en jugar con los datos. Durante la ejecución de algunas tareas, pueden surgir situaciones en las que sea necesario cambiar el tipo de datos de un tipo a otro.

Por ejemplo, si la variable es de tipo cadena, debe convertirse a entero para realizar operaciones aritméticas. En tal condición, entra en juego el concepto de conversión de tipos y resolución de tipos.

Antes de aprender la conversión de tipos y la resolución de tipos en Python, debe estar familiarizado con los tipos de datos de Python. Así que consulte el blog Tipos de datos de Python para principiantes para obtener una mejor comprensión.

Aprende más de python con estos temas:

Conversión de tipo

En la conversión de tipos, el intérprete de Python convierte automáticamente un tipo de datos en otro. Dado que Python maneja la conversión del tipo de datos implícitamente, el programador no necesita convertir explícitamente el tipo de datos a otro tipo.

El tipo de datos a partir del cual se produce la conversión se denomina tipo de datos de destino y el tipo de datos a partir del cual se produce la conversión se denomina tipo de datos de origen.

En la conversión de tipos, los datos de destino de menor tamaño se convierten al tipo de datos de origen de mayor tamaño. Esto evita la pérdida de datos y hace que la conversión sea segura de usar.

Recomendado: Aprende sobre estos lenguajes de programación y tipos

 En una conversión de tipo, el tipo de datos de origen con un tamaño más pequeño se convierte en el tipo de datos de destino con un tamaño más grande.

Veamos un ejemplo para entender la conversión de tipos en Python.

intType = 20
floatType = 0.8
 
# intType is converted from int to float
result = intType + floatType
 
# intType is of type int
print("datatype of intType:", type(intType))
 
# floatType is of type float
print("datatype of floatType:", type(floatType))
 
print("intType + floatType = ", result)
# result is of type float
print("result: ", type(result))

Resultado:

datatype of intType: <class 'int'>
datatype of floatType: <class 'float'>
intType + floatType =  20.8
result:  <class 'float'>

Ahora intentemos agregar una cadena de mayor tamaño y un número entero de menor tamaño.

intType = 20
strType = "0.8"
 
# add an integer and string
result = intType + strType
 
print("Data type of the listType :",type(intType))
print("Data type of the listType :",type(strType))
 
print("result: "+result)
print("Data type of the listType :",type(result))

Resultado:

Como habrá notado, encontramos un error de tipo al ejecutar el código anterior. Python no realiza la conversión implícita en este caso. Sin embargo, este error se puede resolver utilizando la resolución de tipos, que se analizará a continuación.

Tipo de solución

En un tipo de solución, el programador tiene que cambiar manualmente el tipo de datos según sus necesidades. En este caso, el programador convierte explícitamente el tipo de datos usando funciones predefinidas como int(), float(), str(), etc. Existe la posibilidad de pérdida de datos en este caso si un tipo de datos en particular se convierte a otro tipo de datos de menor tamaño.

Las funciones integradas de Python utilizadas para la conversión se proporcionan a continuación, junto con sus descripciones:

FunciónSuelte
int(x, base)cambios cualquier tipo de datos x a entero con la base de datos especificada
nadar (x)x convierte un tipo de datos en un número de punto flotante
complejo (real, imagen)convierte un número real en un número complejo
cadena(x)x cambia el tipo de datos a cadena
tupla(x)x cambia el tipo de datos a tupla
lista(x)x cambia el tipo de datos a la lista
conjunto(x)x cambia el tipo de datos para establecer
dictado (x)crea un diccionario y el tipo de datos x debe ser una secuencia de tuplas (clave, valor).
orden(x)convierte el carácter x en un número entero
hexadecimal(x)convierte un entero x en una cadena hexadecimal
ocho(x)convierte un entero x en una cadena octal
cr(x)convierte un número x en el carácter ASCII (Código estándar estadounidense para el intercambio de información) correspondiente.

Ahora, veamos un ejemplo para entender la resolución de tipos en Python.

strType = "CodingNinjas"
 
# printing string converting to tuple
tupleType = tuple(strType)
print("After converting string to tuple : ")
print(tupleType)
print("Data type of the tupleType :",type(tupleType))
 
# printing string converting to set
setType = set(strType)
print("After converting string to set : ")
print(setType)
print("Data type of the setType :",type(setType))
 
# printing string converting to list
listType = list(strType)
print("After converting string to list : ")
print(listType)
print("Data type of the listType :",type(listType))

Resultado:

After converting string to tuple :
('C', 'o', 'd', 'i', 'n', 'g', 'N', 'i', 'n', 'j', 'a', 's')
Data type of the tupleType : <class 'tuple'>
After converting string to set :
{'g', 'N', 'n', 'C', 's', 'o', 'j', 'd', 'a', 'i'}
Data type of the setType : <class 'set'>
After converting string to list :
['C', 'o', 'd', 'i', 'n', 'g', 'N', 'i', 'n', 'j', 'a', 's']
Data type of the listType : <class 'list'>

Preguntas frecuentes

¿Cuál es el significado de conversión de tipo y resolución de tipo en Python?

En la conversión de tipos, el intérprete de Python convierte automáticamente un tipo de datos en otro. En un tipo de solución, el programador cambia manualmente el tipo de datos según sus necesidades.

¿Cuáles son los métodos comunes utilizados para convertir tipos de datos en Python?

La conversión de tipos y la resolución de tipos en Python permiten la conversión de un tipo de datos a otro.

Distinguir entre conversión de tipos y resolución de tipos en Python en función de la pérdida de datos.

Existe la posibilidad de perder datos en la resolución de tipos aunque los datos se guarden en la conversión de tipos.

¿Cómo ocurre la conversión de datos en la resolución de tipos en Python?

En la resolución de tipos explícitos, el programador convierte manualmente los tipos de datos utilizando funciones integradas.

¿Es posible convertir una cadena en un número entero en Python?

No, una cadena no se puede convertir en un número entero ni siquiera usando el método integrado in().