Saltar a contenido

Parcialito 1 - 2023b - Tema 1#

Ejercicio 1#

Una tienda de electrónica necesita manejar la información de sus productos, para lo cual se requiere un programa en Python que defina una lista de diccionarios que contenga la información de cada artículo como se ve en el siguiente ejemplo:

items = [
    {'nombre': 'smartphone', 'precio': 300000.0, 'stock': 50},
    {'nombre': 'tv', 'precio': 350000.0, 'stock': 15},
    {'nombre': 'notebook', 'precio': 550000.0, 'stock': 10},
    {'nombre': 'tablet', 'precio': 550000.0, 'stock': 0},
]
  1. Defina una función info_producto(nombre,items) que reciba la lista de items y el nombre del producto a consultar. La función debe retornar el diccionario correspondiente al producto indicado.

  2. Implementar un programa principal que solicita al usuario el nombre de un producto desde la terminal e informe un resumen con su precio y disponibilidad, como se indica en los ejemplos. Si el producto no está en la lista, debe devolver un mensaje advirtiendo que el producto no se encuentra. Debe cumplir con el siguiente formato de ejecución:

    Ingrese el nombre del producto:
    > SmartPhone
    Producto: SMARTPHONE, Precio: $300000.0, Stock: 50 unidades disponibles
    
    Ingrese el nombre del producto:
    > tablet
    Producto TABLET no tiene unidades disponibles en este momento
    
    Ingrese el nombre del producto:
    > celular
    Producto 'CELULAR' no encontrado en la tienda de electrónica.
    

Ejercicio 2#

Se desea pedir una lista de nombres y apellidos al usuario cumpliendo los siguientes requerimientos:

  1. Crear una función cargar_nombres(), que solicite por terminal Apellido y Nombre de una persona, separados por el caracter “,” (coma) y retorne una lista de tuplas (ver ejemplo). Luego de cada ingreso, debe volver a solicitar el siguiente hasta que el usuario ingrese el caracter “q” para concluir. Los strings deben guardarse con la primer letra en mayúscula y sin espacios en los extremos. La ejecución debe cumplir con el siguiente formato:

    Comenzando la carga de datos...
    Ingrese nombre y apellido (q para terminar): Rey, Juan
    Ingrese nombre y apellido (q para terminar): de la Fuente,ana
    Ingrese nombre y apellido (q para terminar): Ortiz,carlos
    Ingrese nombre y apellido (q para terminar): q
    Finalizó la carga de datos
    

    En este caso, la lista retornada sería:

    [('Rey','Juan'),('De la fuente','Ana'),('Ortiz','Carlos')]
    
  2. Escriba un programa que imprima en pantalla la información de todos los nombres ingresados utilizando la función del ejercicio 1. La ejecución debe mostrar el siguiente formato:

    Nombre: Juan
    Apellido: Rey
    
    Nombre: Ana
    Apellido: De la fuente
    
    Nombre: Carlos
    Apellido: Ortiz
    

Ejercicio 3#

Un archivo en formato CSV, como se muestra a continuación, contiene canciones (nombre, duración, artista).

canciones.csv

Wicked,2:53,Future
Cudi Montage,3:16,KIDS SEE GHOSTS
Cellular,2:58,King Krule
The Birthday Party,4:45,The 1975
One,4:36,U2

  1. Escribir un programa que solicite al usuario el nombre del archivo, lo lea e imprima por pantalla una tabla con la información de acuerdo al formato indicado más abajo. Tenga en cuenta que debe chequear que la extensión del archivo sea “.csv”, caso contrario debe volver a solicitar el archivo correcto.

    Ingrese nombre del archivo: canciones.txt
    Error: Debe ingresar un archivo CSV
    
    Ingrese nombre del archivo: canciones.csv
    
    Name                        Time  Artist
    --------------------------------------------------
    Wicked                      2:53  Future
    Cudi Montage                3:16  KIDS SEE GHOSTS
    Cellular                    2:58  King Krule
    The Birthday Party          4:45  The 1975
    One                         4:36  U2
    

    Nota: la primera columna posee 28 caracteres de ancho y la segunda de 6 caracteres. La línea posee 50 caracteres de largo.

Ejercicio 4#

Escriba un programa que interactúe con el usuario mediante un menú de opciones. Suponga que dispone de un diccionario quiz_1, como se indica más abajo. El diccionario contiene la pregunta, las opciones y la respuesta correcta. El programa debe imprimir el menú y esperar a que el usuario ingrese una opción. Luego debe informar si la opción ingresada es Correcta o Incorrecta, como se muestra en el ejemplo. Además debe verificarse que la opción ingresada sea válida para ese menú, caso contrario informar el error y finalizar el programa. Tenga en cuenta la modularización del problema.

quiz_1 = {
  'pregunta': '¿Quién propuso el uso de la corriente alterna?',
  'opciones': {1: 'Turing', 2: 'Tesla', 3: 'Edison', 4: 'Bell'},
  'respuesta': 2
}

Ejemplo de ejecución del programa principal:

¿Quién propuso el uso de la corriente alterna?
1. Turing
2. Tesla
3. Edison
4. Bell
> 2
¡Correcta!