Entrada y Salida de Datos
Todo programa interactivo necesita recibir información del usuario y mostrar resultados. En Python, input() captura lo que el usuario escribe y print() lo muestra en pantalla.
Entrada de datos: input()
Imagina que estás creando un pequeño sistema para una tienda. Necesitas preguntarle al cajero el nombre del cliente y cuánto gastó. Para eso usas input().
input() muestra un mensaje en pantalla, pausa el programa y espera a que el usuario escriba algo. Cuando presiona Enter, devuelve lo que escribió y lo guardas en una variable.
nombre = input("¿Cuál es tu nombre? ")
dinero_gastado = input("¿Cuánto dinero gastaste? ")
Siempre devuelve str
Aquí viene un detalle que sorprende a todos al principio: input() siempre devuelve texto, sin importar qué escriba el usuario. Aunque el usuario escriba 100, Python lo recibe como la cadena "100", no como el número 100.
print(type(nombre)) # <class 'str'>
print(type(dinero_gastado)) # <class 'str'> ← aunque parezca número
input() siempre retorna str. Si necesitas operar matemáticamente con el valor, debes convertirlo explícitamente.
Conversión de tipos
Para convertir el texto a número usas int() (si esperas un entero) o float() (si esperas decimales).
dinero_entero = int(dinero_gastado) # "100" → 100
dinero_decimal = float(dinero_gastado) # "100" → 100.0
print(type(dinero_decimal)) # <class 'float'>
También puedes hacer la conversión directamente en la misma línea que el input():
precio = float(input("Precio del producto: "))
Ejemplo Calculadora de total con descuento
Pedimos precio y porcentaje de descuento, y calculamos el total:
precio = float(input("Precio original: "))
descuento = float(input("Descuento (%): "))
total = precio * (1 - descuento / 100)
print("Total a pagar:", total)
Si el usuario escribe 200 y 10, el total será 180.0.
Salida de datos: print()
Ya conoces print() del módulo anterior. Puedes pasarle varios argumentos separados por coma y los imprime con un espacio entre ellos:
nombre = "Jesús"
total = 100.0
print("Hola", nombre, "gastaste", total, "en la tienda")
# Hola Jesús gastaste 100.0 en la tienda
f-strings
Las f-strings son la forma moderna y más legible de mezclar texto y variables. Colocas una f antes de las comillas y encierras las variables entre llaves {}.
print(f"Hola {nombre}, gastaste {total} en la tienda")
# Hola Jesús, gastaste 100.0 en la tienda
Dentro de las llaves puedes escribir cualquier expresión de Python, no solo variables:
precio = 200.0
print(f"Con 10% de descuento pagas: {precio * 0.9}")
# Con 10% de descuento pagas: 180.0
Más detalle Formato de números en f-strings
Puedes controlar cuántos decimales se muestran con :.2f (dos decimales en formato flotante):
precio = 199.9999
print(f"Precio: {precio:.2f}") # Precio: 200.00
El patrón general es {valor:formato}. Otros formatos útiles: :.0f (sin decimales), :, (separador de miles).