Aunque Python es un lenguaje de programación débilmente tipado y no necesita declarar el tipo de una variable antes de usarlo como Java o C, la conversión de tipos aún es necesaria en algunos escenarios específicos.
Por ejemplo, queremos generar la información "Su altura:" y el valor de la altura del tipo de punto flotante usando la función print(). Si se ejecuta el siguiente código en el intérprete interactivo:
>>> altura = 70.0
>>> print("Tu altura"+altura)
Rastreo (última llamada más reciente):
Archivo "<pyshell#1>", línea 1, en <módulo>
print("Tu altura" +altura )
TypeError: debe ser str, no flotante
Encontrará que esto está mal. El intérprete nos indica que las cadenas y las variables de punto flotante no se pueden conectar directamente. La altura de la variable de punto flotante debe convertirse en una cadena con anticipación.
Afortunadamente, Python nos ha proporcionado una variedad de funciones que pueden lograr la conversión de tipos de datos, como se muestra en la Tabla 1.
función | efecto |
---|---|
entero(x) | Convertir x a tipo entero |
flotador(x) | Convertir x a tipo de punto flotante |
complejo(real,[,imag]) | crear un plural |
cadena(x) | Convertir x a cadena |
repr(x) | Convertir x en una cadena de expresión |
evaluación (cadena) | Evalúa una expresión Python válida en una cadena y devuelve un objeto |
chr(x) | Convertir el número entero x en un carácter |
orden(x) | Convertir un carácter x a su valor entero correspondiente |
hexadecimal(x) | Convertir un número entero x en una cadena hexadecimal |
octubre(x) | Convertir un número entero x en una cadena octal |
Cabe señalar que cuando se utiliza una función de conversión de tipos, los datos que se le proporcionan deben ser significativos. Por ejemplo, la función int() no puede convertir una cadena no numérica en un número entero:
>>> int("123") #Conversión exitosa
123
>>> int("123") #Conversión fallida
Rastreo (última llamada más reciente):
Archivo "<pyshell#3>", línea 1, en <módulo>
int ("123")
ValueError: literal no válido para int() con base 10: '123'
>>>