B3 — entrada-salida

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
Regla importante

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).