Convierta entre tipos de datos.
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: "))
- Python ejecuta primero la función interior: :
input("Enter your score: ")para capturar el texto. - Pasa inmediatamente ese texto a la función externa:
float() - 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'>