Convierta entre tipos de datos.

Completados

Sugerencia

Consulte la pestaña Texto e imágenes para obtener más detalles.

Cuando acepta datos de un usuario mediante la input() función , Python siempre lo captura como texto (una cadena), incluso si el usuario escribe un número. Para usar ese valor en cálculos matemáticos, primero debe convertir explícitamente (o "convertir") su tipo de datos.

Funciones de conversión de tipos

Python proporciona funciones integradas para transformar datos de un tipo a otro. Para convertir un valor, debe encapsularlo en la función de conversión deseada:

Function Convierte en Example Result
int() Número entero int("42") 42
float() Número decimal float("3.14") 3.14
str() Text str(100) "100"

Conversión de la entrada del usuario

Estos son los pasos para convertir la entrada del usuario de texto en un número:

raw_input = input("Enter your score: ")  # Captured as text, e.g. "95"
score = float(raw_input)                 # Convert to a decimal number, e.g. 95.0
print(score + 5)                         # Math is now possible. Output: 100.0

Puede intentar ejecutar este código usted mismo en un intérprete de Python en línea en https://aka.ms/python-coder.

Abreviatura de una línea

Puede combinar estos pasos en una sola línea de código. Al anidar la input() función dentro de una función de conversión, Python primero captura la entrada del usuario como texto y, a continuación, la convierte inmediatamente en el tipo deseado:

score = float(input("Enter your score: "))
  1. Python ejecuta primero la función interior: : input("Enter your score: ") para capturar el texto.
  2. Pasa inmediatamente ese texto a la función externa: float()
  3. A continuación, el número convertido se asigna a la variable score.

¿Qué ocurre con valores incompatibles?

Si intenta convertir un valor que no se puede interpretar como un número, Python deja de ejecutar el programa y genera un ValueError:

user_age = int("hello") 

Output:

ValueError: invalid literal for int() with base 10: 'hello'

También puede obtener un ValueError si intenta convertir un número decimal en un entero, ya que Python no se puede redondear por usted:

user_age = int("3.14") # Pythoncan't drop the decimal for you

Si cree que un usuario podría escribir un número decimal, use float() en lugar de int() para evitar este error. Los floats se pueden convertir en enteros, pero Python siempre redondea hacia abajo la parte decimal (por ejemplo, int(3.99) se convierte en 3).

Comprobación del tipo de un valor

Puede comprobar el tipo de datos de cualquier variable mediante la función integrada type() :

score = "95"
print(type(score))         # Output: <class 'str'>

score = float(score)
print(type(score))         # Output: <class 'float'>