Saltar al contenido principal

Bloque 109. Entrada/salida pulida

Contenidos

Revisa los siguientes apartados de la Unidad para resolver los ejercicios:

En este bloque formatearemos la salida de print() con f-strings, en lugar de concatenar con , o +.

Ejercicio 1. Saludo con nota media

Pide al usuario su nombre y dos notas numéricas. Usando una única f-string, calcula la media de las dos notas directamente dentro de las llaves (sin guardarla antes en una variable) y muéstrala con dos decimales, junto con el nombre.

Por ejemplo, si el usuario introduce Ana, 7 y 8, el programa debe mostrar:

Hola, Ana. Tu media es 7.50

Esto demuestra que dentro de una f-string puedes interpolar cualquier expresión (una operación), no solo el nombre de una variable ya calculada.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 2. Recibo con formato de factura

Pide al usuario el nombre de 3 productos y su precio (uno por uno). Ten en cuenta que el nombre de cada producto puede tener una longitud distinta (unos más cortos, otros más largos): tu programa debe funcionar igual de bien en cualquier caso, sin asumir un número fijo de caracteres.

Muestra un "recibo" alineado con f-strings: en cada línea, el nombre del producto alineado a la izquierda con un ancho mínimo fijo, seguido del precio con dos decimales alineado a la derecha en otro ancho fijo, y una línea final con el total. Por ejemplo:

Pan 1.20 €
Leche 0.95 €
Detergente lavadora 4.00 €
------------------------------
TOTAL 6.15 €

Recuerda que el ancho que indiques en el especificador de formato (:<20, :>8.2f...) es un mínimo: si un nombre es más largo que ese ancho, simplemente ocupará más espacio en pantalla, sin truncarse ni provocar ningún error. Así tu programa se adapta igual de bien a un nombre corto que a uno largo.

Además, la línea TOTAL completa debe mostrarse en azul (usa la versión brillante del color, tal como se explica en el apartado Colores en la terminal de los contenidos). El resto de líneas se muestran con el color por defecto de la terminal. El ejemplo anterior no puede mostrar el color, pero la alineación de las columnas debe ser exactamente la misma que con el texto sin colorear.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 3. Ficha de personaje con alineación

Declara, como literales directamente en el código, una ficha de personaje con una variable nombre (str), una variable nivel (int) y una variable vida (float). Muéstrala como una tabla de texto, con las etiquetas alineadas a la izquierda en una anchura fija y los valores alineados a la derecha, por ejemplo:

Nombre: Ana
Nivel: 5
Vida: 87.50

Usa los especificadores de anchura de los f-strings en lugar de espacios escritos a mano.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 4. Tabla de multiplicar alineada

Pide al usuario un número y muestra su tabla de multiplicar del 1 al 10 con f-strings, alineando cada línea con especificadores de anchura para que los resultados queden en columna, por ejemplo:

7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70

Además, cada línea debe mostrarse con colores (usa la versión brillante de cada color, tal como se explica en el apartado Colores en la terminal de los contenidos):

ColumnaEjemploColor
Primera (el número introducido)7Gris
Segunda (el multiplicador, del 1 al 10)1, 2... 10Verde
Última (el resultado)7, 14... 70Magenta

Los símbolos x y = se muestran con el color por defecto de la terminal. El ejemplo anterior no puede mostrar los colores, pero la alineación de las columnas debe ser exactamente la misma que con el texto sin colorear.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 5. Informe de temperaturas

Pide al usuario 5 temperaturas, una por una, guardándolas en variables (debes crear 5 variables). Muestra cada una con un decimal y alineada a la derecha con un f-string, y al final muestra la media de las 5 con dos decimales, en una línea aparte.

Por ejemplo, si el usuario introduce 21.31, 19.8, 23, 18.5 y 22.7, el programa debe mostrar:

T1 21.3 °C
T2 19.8 °C
T3 23.0 °C
T4 18.5 °C
T5 22.7 °C
Media 21.06 °C

💾 Haz un commit al terminar el ejercicio.

Ejercicio 6. Progreso en texto

Escribe una función que, dado un valor actual y un máximo (por ejemplo, puntos de experiencia de un personaje: 65 de 100), muestre una barra de progreso hecha con caracteres de texto, como [#########-----------] 65/100, usando f-strings para construir la cadena (multiplicando el carácter # y - según la proporción correspondiente).

💾 Haz un commit al terminar el ejercicio.

Repaso

Al terminar los ejercicios, debes tener claro los siguientes conceptos:

  • input() para leer datos por teclado
  • print() para mostrar datos por pantalla
  • f-strings (f"...")
  • Interpolación de expresiones dentro de una f-string
  • Especificadores de formato: decimales (:.2f)
  • Especificadores de formato: anchura y alineación (:<12, :>8)
  • Colores en la terminal con códigos de escape ANSI