Parte 5 — Convertir respuestas
Convertir con int()
Para solicitar un número entero:
saldo_texto = input("Saldo inicial: ")
saldo = int(saldo_texto)
print("Saldo:", saldo)
print("Tipo:", type(saldo))Si el usuario escribe:
1000el resultado será:
Saldo: 1000
Tipo: <class 'int'>Conversión directa
Podemos realizar ambas operaciones en una línea:
saldo = int(input("Saldo inicial: "))El orden interno es:
input()recibe texto.int()convierte el texto.- El resultado se guarda en
saldo.
El usuario escribe 1000
↓
input() devuelve "1000"
↓
int("1000") devuelve 1000
↓
saldo guarda el número 1000Forma larga y forma corta
Forma larga:
saldo_texto = input("Saldo inicial: ")
saldo = int(saldo_texto)Forma corta:
saldo = int(input("Saldo inicial: "))Ambas funcionan.
La forma larga puede ser útil mientras estás aprendiendo porque permite observar cada paso.
La forma corta es muy común en proyectos reales.
Solicitar un decimal
Para aceptar valores decimales usamos float():
tipo_cambio = float(input("Tipo de cambio: "))
print(tipo_cambio)
print(type(tipo_cambio))Si el usuario escribe:
512.75el valor será de tipo float.
El usuario debe utilizar punto decimal
Correcto:
19.99Incorrecto para float():
19,99Este código:
precio = float(input("Precio: "))producirá un error si el usuario escribe una coma decimal.
Más adelante aprenderemos a limpiar y validar ese tipo de entrada.
Datos que deben permanecer como texto
No conviertas todo automáticamente a números.
Por ejemplo:
numero_cuenta = input("Número de cuenta: ")Si el usuario escribe:
001234queremos conservar los ceros iniciales.
Por eso debe permanecer como str.
Teléfonos y documentos
También suelen guardarse como texto:
telefono = input("Número de teléfono: ")
documento = input("Número de identificación: ")
codigo_postal = input("Código postal: ")Aunque contienen dígitos, no se utilizan normalmente en operaciones matemáticas.
Elegir si convertimos
Antes de convertir, pregunta:
¿Necesito utilizar este dato en cálculos?
Si la respuesta es sí:
saldo = int(input("Saldo: "))Si es un identificador:
numero_cuenta = input("Número de cuenta: ")