certmundo.
es‑mx

6 min de lectura

Entrada y salida de datos

Lección 5: Entrada y salida de datos

Hasta ahora has escrito programas que hacen lo mismo cada vez que los ejecutas. Son útiles, pero tienen un límite claro: no pueden adaptarse a quien los usa. En esta lección vas a aprender a crear programas que escuchan al usuario, procesan su información y responden de forma personalizada. Es el salto que convierte tus scripts en herramientas reales.


¿Por qué importa la entrada y salida de datos?

Imagina que trabajas en una startup fintech en CDMX o Monterrey, y tu equipo necesita una calculadora rápida para estimar comisiones de vendedores. Nadie quiere abrir un archivo de código y cambiar números manualmente cada vez. Lo que necesitan es un programa que pregunte el monto y devuelva el resultado al instante.

Eso es exactamente lo que vas a construir al final de esta lección.


La función input(): escuchando al usuario

La función input() pausa la ejecución de tu programa y espera a que el usuario escriba algo en la terminal. Todo lo que el usuario teclee se guarda como un valor de texto.

Su sintaxis básica es:

nombre = input("¿Cuál es tu nombre? ")

El texto entre comillas es el prompt: el mensaje que verá el usuario antes de escribir. Después de que el usuario presiona Enter, el valor queda almacenado en la variable nombre.

Hay algo crucial que debes entender desde el principio: input() siempre devuelve una cadena de texto (string), sin importar qué escriba el usuario. Si alguien escribe 42, Python lo almacena como el texto "42", no como el número 42. Este detalle es la causa número uno de errores en programas que dependen de datos del usuario.


Conversión de tipos: dándole sentido a los datos

Aquí entra en juego la conversión de tipos (también llamada type casting). Python te da funciones integradas para transformar un tipo de dato en otro:

  • int() convierte a número entero
  • float() convierte a número decimal
  • str() convierte a cadena de texto
  • bool() convierte a valor booleano

La conversión es indispensable cuando necesitas hacer operaciones matemáticas con datos que el usuario introdujo. Mira este ejemplo del mundo laboral:

# Calculadora de salario mensual para trabajo remoto
# Útil para freelancers que cotizan en USD y cobran en MXN

tarifa_hora = float(input("¿Cuál es tu tarifa por hora en USD? "))
horas_semana = int(input("¿Cuántas horas trabajas a la semana? "))
tipo_cambio = float(input("Tipo de cambio actual (MXN por USD): "))

# Calculamos el ingreso mensual aproximado (4 semanas)
ingreso_usd = tarifa_hora * horas_semana * 4
ingreso_mxn = ingreso_usd * tipo_cambio

print("Tu ingreso mensual estimado es:")
print(ingreso_usd, "USD /", ingreso_mxn, "MXN")

En este código, float() e int() se aplican directamente sobre el resultado de input(), convirtiendo los valores en el mismo momento en que el usuario los ingresa. Así puedes usarlos en cálculos sin ningún problema.

Un error común es olvidar la conversión. Si intentas sumar "15" + "20", Python no te dará 35, sino "1520", porque está concatenando cadenas. La conversión de tipos es tu primera línea de defensa contra ese comportamiento inesperado.


Formateo de salida con f-strings

Ya sabes cómo mostrar información con print(). Ahora vas a aprender a hacerlo con estilo usando f-strings, una de las formas más modernas y elegantes de formatear texto en Python.

Un f-string es una cadena de texto que empieza con la letra f antes de las comillas. Dentro de ella, puedes insertar variables o expresiones directamente entre llaves {}:

nombre = "Valentina"
ciudad = "Guadalajara"
salario = 28500.75

# f-string básico: insertar variables directamente en el texto
print(f"Hola, {nombre}. Trabajas en {ciudad}.")

# Puedes dar formato a números: 2 decimales y separador de miles
print(f"Tu salario mensual es: ${salario:,.2f} MXN")

# También puedes hacer cálculos dentro de las llaves
bono = salario * 0.10
print(f"Tu bono trimestral sería: ${bono:,.2f} MXN")

La sintaxis {salario:,.2f} puede lucir intimidante al principio, pero es muy lógica: la coma , agrega separadores de miles, el .2 indica dos decimales, y la f confirma que es un número de punto flotante. El resultado es una salida limpia y profesional, del tipo que verías en cualquier reporte financiero de una empresa.

Los f-strings son la forma preferida de formatear texto en Python moderno (versión 3.6 en adelante). Son más legibles que concatenar cadenas con + y más poderosos que el método antiguo con %.


Proyecto: construye una calculadora simple

Es momento de juntar todo lo que aprendiste. Vamos a construir una calculadora funcional con entrada del usuario, conversión de tipos y salida formateada. Este tipo de herramienta podría usarse en cualquier negocio pequeño, desde una taquería en Oaxaca hasta una agencia digital en Bogotá:

# Calculadora simple con las 4 operaciones básicas
# Proyecto final de la Lección 5

print("=== Calculadora Básica ===")

# Pedimos los dos números al usuario y los convertimos a float
num1 = float(input("Ingresa el primer número: "))
num2 = float(input("Ingresa el segundo número: "))

# Calculamos las cuatro operaciones
suma        = num1 + num2
resta       = num1 - num2
producto    = num1 * num2

# La división requiere cuidado: evitamos dividir entre cero
if num2 != 0:
    division = num1 / num2
    print(f"División:       {num1} ÷ {num2} = {division:.2f}")

# Mostramos los resultados con formato limpio
print(f"Suma:           {num1} + {num2} = {suma}")
print(f"Resta:          {num1} - {num2} = {resta}")
print(f"Multiplicación: {num1} × {num2} = {producto}")

Este programa tiene algo interesante: incluye una condición para verificar que el segundo número no sea cero antes de dividir. Ese if num2 != 0 es un anticipo de lo que verás en la próxima lección. Por ahora, solo nota que Python te permite tomar decisiones dentro del código, algo que es fundamental en cualquier programa real.


Buenas prácticas al trabajar con entrada de datos

Cuando desarrollas software para otras personas, la entrada de datos es una zona de riesgo. Los usuarios pueden escribir letras donde esperabas números, dejar campos vacíos o ingresar valores fuera de rango. Aunque el manejo de errores avanzado es un tema para más adelante en el curso, hay hábitos que puedes adoptar desde ahora.

Primero, siempre escribe prompts claros y específicos. En lugar de input("Número: "), escribe input("Ingresa tu edad en años (ej. 25): "). Eso reduce la confusión del usuario y la cantidad de datos inválidos que llegan a tu programa.

Segundo, convierte los tipos lo antes posible, justo al leer el dato, tal como lo hicimos en los ejemplos anteriores. Así el resto de tu código puede asumir con seguridad que trabaja con el tipo correcto.

Tercero, usa f-strings para toda salida dirigida al usuario. Tu programa puede funcionar perfectamente, pero si la salida es confusa o poco legible, el usuario sentirá que algo está mal. La presentación importa, especialmente en el mercado tech mexicano donde la experiencia de usuario es cada vez más valorada.


Lo que viene a continuación

En la Lección 6: Estructuras condicionales vas a descubrir cómo darle a tus programas la capacidad de tomar decisiones. Aprenderás a usar if, elif y else para que tu código evalúe condiciones y ejecute distintas acciones según el resultado.

Esto te permitirá, por ejemplo, mejorar la calculadora que acabas de construir: podrías hacer que el programa detecte automáticamente si el usuario quiere sumar, restar, multiplicar o dividir, y que responda en consecuencia. También podrás crear validaciones reales, como verificar que un salario ingresado esté dentro de un rango razonable, o que una edad tenga sentido antes de procesarla.

Las estructuras condicionales son el fundamento de la lógica de programación. Todo lo que hagas a partir de aquí, desde análisis de datos hasta automatizaciones para startups, va a depender de que domines este concepto. ¡Nos vemos en la próxima lección!

Puntos clave

  • input() siempre devuelve una cadena de texto, por lo que debes usar int() o float() para convertir los datos del usuario antes de hacer operaciones matemáticas.
  • Los f-strings (cadenas que empiezan con f"...") permiten insertar variables y aplicar formato numérico directamente dentro del texto, haciendo la salida más limpia y profesional.
  • Escribir prompts claros, convertir tipos de inmediato y formatear la salida son buenas prácticas que distinguen un programa funcional de uno verdaderamente usable.

Comparte esta lección: