Pedir datos y mostrar resultados claros

Ciencia y tecnologíaPedir datos y mostrar resultados claros

Hasta ahora has modificado los datos editando el archivo. Una aplicación resulta más útil cuando puede pedir información durante su ejecución. En esta lección aprenderás a recoger texto con input, convertir cantidades y presentar resultados comprensibles. También identificarás una limitación que resolveremos más adelante: una entrada de teclado puede no tener el formato que esperabas.

Pedir una respuesta

La función input muestra una pregunta y espera a que escribas una respuesta seguida de Intro. El valor que devuelve es una cadena de texto. Puedes guardarlo en una variable y utilizarlo después. Empieza con este programa en un archivo llamado presentacion.py:

nombre = input("¿Cómo te llamas? ")
print("Hola", nombre)

El espacio después del signo de interrogación separa visualmente la pregunta de lo que escribes. La segunda instrucción no se ejecuta hasta que confirmas la entrada. Si parece que el programa se ha detenido comprueba si está esperando tu respuesta. Esperar datos no es necesariamente un fallo.

La coma dentro de print separa argumentos. Python los muestra dejando un espacio entre ellos de manera predeterminada. No es la coma decimal ni una coma que vaya a aparecer obligatoriamente en el mensaje. En este caso permite combinar una palabra fija y el contenido de una variable sin construir una cadena manualmente.

Limpiar lo necesario sin alterar el significado

Una persona puede escribir espacios antes o después del nombre. El método strip devuelve una cadena sin esos espacios exteriores. Un método es una operación asociada a un objeto y se escribe detrás de un punto. No necesitas conocer todavía toda la teoría para utilizar esta operación concreta.

nombre = input("¿Cómo te llamas? ").strip()
print("Hola", nombre)

strip no elimina los espacios interiores de un nombre compuesto. «Ana María» conserva la separación entre las dos palabras. Tampoco convierte un nombre vacío en uno válido. Si introduces solo espacios el resultado será una cadena vacía. Comprobaremos ese caso mediante condiciones cuando lleguemos a la lección correspondiente.

Evita transformar todos los datos de la misma manera. Convertir una respuesta de menú a minúsculas puede ser útil. Cambiar arbitrariamente las mayúsculas de una contraseña o de un identificador puede alterar su significado. Antes de normalizar un dato decide qué diferencias son irrelevantes para tu programa y cuáles necesitas conservar.

Convertir texto en una cantidad

Si preguntas cuántas carpetas necesita una persona input devuelve texto aunque haya escrito cifras. Para hacer una suma numérica puedes convertir esa cadena con int. Observa cada etapa en este ejemplo independiente:

texto = input("¿Cuántas carpetas necesitas? ")
carpetas = int(texto)
reserva = 2
total = carpetas + reserva
print("Carpetas que preparar:", total)

Si introduces 5 el resultado será 7. En cambio, sumar dos cadenas concatena sus contenidos: «5» + «2» produce «52». El símbolo es el mismo pero el comportamiento depende de los tipos. Por eso conviene comprobar qué contiene una variable antes de culpar al cálculo.

La conversión int exige una representación válida de un entero. Una respuesta como cinco o 2.5 no cumple ese requisito y provocará un ValueError. En esta lección utiliza entradas enteras válidas y observa el fallo una vez para reconocerlo. En la lección de validación aprenderás a pedir el dato otra vez sin que termine el programa.

Separar preguntar, calcular y mostrar

Aunque puedes escribir muchas operaciones en una sola línea, al principio resulta más claro separar tres fases. Primero recoges los datos. Después realizas el cálculo. Finalmente muestras el resultado. Esta organización permite inspeccionar una etapa sin tener que interpretar simultáneamente todas las demás.

Supón que preparas bolsas con cuatro tarjetas cada una. Pregunta el número de bolsas, conviértelo a entero y multiplica por cuatro. La salida debe explicar qué representa el número. Mostrar únicamente 20 obliga a recordar si hablabas de bolsas, tarjetas o paquetes. Un mensaje como «Necesitas 20 tarjetas» reduce esa ambigüedad.

También puedes utilizar una cadena formateada, conocida como f-string. Se escribe una f delante de las comillas y se colocan las expresiones entre llaves. El contenido de cada expresión se sustituye por su valor:

bolsas = int(input("Número de bolsas: "))
tarjetas = bolsas * 4
print(f"Para {bolsas} bolsas necesitas {tarjetas} tarjetas")

No escribas comillas alrededor de bolsas dentro de las llaves si quieres utilizar la variable. Las llaves forman parte del mecanismo de formato. Fuera de una f-string no producen automáticamente esa sustitución. Si olvidas la f verás las llaves y el nombre tal como estaban escritos.

Diseñar preguntas que eviten dudas

Una pregunta debe indicar qué dato esperas y en qué unidad. «Cantidad» puede referirse a euros, unidades o minutos. «Número de bolsas enteras» orienta mejor al usuario. Si solo aceptas enteros dilo antes de que pruebe con una cantidad decimal. Un buen mensaje reduce errores aunque no sustituye a la validación.

Para las prácticas no pidas información personal que no necesitas. Un nombre inventado basta para comprobar un saludo. Un programa educativo no debe convertirse accidentalmente en un archivo de teléfonos reales. Trabajar con datos ficticios también facilita repetir pruebas y compartir un error sin revelar información ajena.

Errores habituales

  • Suponer que input devuelve números cuando el usuario escribe cifras.
  • Eliminar espacios interiores que sí forman parte del dato.
  • Mostrar resultados sin unidades ni una explicación breve.
  • Olvidar la f de una cadena formateada.
  • Prometer que una entrada es válida solo porque se ha podido convertir.

Lo que deberías recordar

  • input devuelve texto y espera la confirmación con Intro.
  • int convierte una representación válida de entero.
  • Las preguntas y los resultados necesitan contexto.
  • Normalizar un dato no equivale a validarlo completamente.

Ejercicio práctico

Crea un programa que pregunte un nombre y cuántos paquetes de tres sobres necesita esa persona. Limpia únicamente los espacios exteriores del nombre. Convierte el número de paquetes a entero y muestra un mensaje personalizado con el total de sobres. Con cuatro paquetes debes obtener doce sobres.

En la quinta hoja del cuaderno registra las preguntas, la entrada « Ana » y el nombre normalizado. Prueba dos cantidades válidas distintas. Después introduce una palabra donde se pide el número y anota el error observado sin intentar ocultarlo. Conserva ese caso pendiente para retomarlo en la lección de validación.

Siguiente capítulo: Calcular y comparar sin perder el sentido.

Volver al índice del curso de programación desde cero.

Últimos posts

Artículos más vistos

Horóscopo diario
Menú diario