2.3. Tipo de funciones de conversión
A veces es necesario convertir valores de un tipo a otro. Python proporciona
Algunas funciones simples que nos permitirán hacer eso. Las funciones int
, float
y str
(intentará) convertir sus argumentos en tipos int , float y str
respectivamente. Llamamos a estas de conversión de tipo .
El int
la función puede tomar un número de punto flotante o una cadena, y girarla
en un int. Para los números de puntos flotantes, descarta la porción decimal de
el número: un proceso que llamamos truncamiento hacia cero en la línea numérica.
Veamos esto en acción:
>>print(3.14, int(3.14))
>>print(3.9999, int(3.9999)) # This doesn't round to the closest int!
>>print(3.0, int(3.0))
>>print(-3.999, int(-3.999)) # Note that the result is closer to zero
>>print("2345", int("2345")) # parse a string to produce an int
>>print(17, int(17)) # int even works on integers
>>print(int("23bottles"))
>>>3.14 3
>>>3.9999 3
>>>3.0 3
>>>-3.999 -3
>>>2345 2345
>>>17 17
>>>Error
ValueError: Literal no válido para int () con base 10: '23bottles' en la línea 8
Descripción
Un ValueError se produce con mayor frecuencia cuando pasa un parámetro a una función y la función espera un tipo y pasa otro.
Para arreglar
El mensaje de error le da una pista bastante buena sobre el nombre de la función, así como el valor que es incorrecto. Mire el mensaje de error de cerca y luego rastree la variable que contiene el valor problemático.
El último caso muestra que una cadena tiene que ser un número sintácticamente legal,
De lo contrario, obtendrá uno de esos molestos errores de tiempo de ejecución. Modifique el ejemplo eliminando el
bottles
y volver a ejecutar el programa. Deberías ver el entero 23
.
El tipo convertidor float
puede convertir un entero, un flotador o un sintácticamente
cadena legal en un flotador.
>>print(float("123.45"))
>>print(type(float("123.45")))
>>>123.45
>>> <class 'float'>
El tipo convertidor str
convierte su argumento en una cadena. Recuerda que cuando imprimimos una cadena, Se eliminan las comillas. Sin embargo, si imprimimos el tipo, podemos ver que definitivamente es STR .
>>print(str(17))
>>print(str(123.45))
>>print(type(str(123.45)))
>>>17
>>>123.45
>>> <class 'str'>
Comprueba tu comprensión
¿Qué valor se imprime cuando se ejecuta la siguiente declaración?
print( int(53.785) )
Actividad: 2.3.4 Opción múltiple
Respuesta: 2.3.4 B.
No hay comentarios.:
Publicar un comentario