Parcialito 1 - 2024a - Tema 1#
Ejercicio 1#
Un bibliotecario necesita un sistema informático con el que pueda gestionar los libros y acceder a la información filtrando los datos mediante algún criterio. Para cumplir con este requerimiento, se propone implementar un programa en lenguaje Python, utilizando diccionarios que permitan almacenar la información de cada libro en una estructura como la siguiente:
-
Definir la función agregar_libro(lista_libros) que reciba como argumento una lista de libros, le solicite al usuario que ingrese los datos de un nuevo libro y lo añada a la lista. La función debe retornar la lista actualizada con el nuevo libro. Ejemplo del ingreso de datos:
-
Implemente una función llamada info_libros(lista_libros, genero) que reciba la lista de libros y un string que especifique el género literario deseado (por simplicidad, suponga solo los géneros: Fantasía, Novelas y Filosofía) y muestre por pantalla un resumen con todos los libros que poseen el género especificado. Si el género no existe, debe mostrar el mensaje “No hay libros con ese género”. Una posible salida (para el género Novelas) sería:
-
Asumiendo que ya existe una lista de libros, implementar un código principal que solicite al usuario el género y muestre por pantalla el resumen de todos los libros que cumplen con ese género.
Ejercicio 2#
Se requiere implementar un programa que calcule la similitud entre dos cadenas de ADN. Se propone utilizar la distancia de Hamming (como medida de similitud) y en base a ésta definir el resultado de la comparación. Para ello se pide:
-
Implementar una función en Python llamada distancia_hamming(ADN1, ADN2) que acepte dos cadenas de texto como argumentos y retorne la distancia de Hamming entre ellas. Asuma que ambos strings tienen el mismo largo. Además, defina el Docstring de esta función de manera que quede correctamente documentada.
Ayuda: La distancia de Hamming se define como la cantidad de elementos que difieren entre dos secuencias de igual longitud. Por ejemplo: HOLA y HOJA tienen distancia 1; PERRO y PARDO tienen distancia 2.
-
Implementar una función llamada comparar_adn(ADN1, ADN2, u), que reciba ambas secuencias de ADN y un número entero u con el que se especifica un umbral de comparación. La función debe retornar un string que contenga alguno de los siguientes mensajes:
- ‘Iguales’ si la distancia entre ambas cadenas es d=0.
- ‘Similares’ si la distancia entre ambas cadenas es 0 < d <= u.
- ‘Distintas’ si la distancia entre ambas cadenas es d > u.
-
Escriba un programa principal que utilice dos cadenas de ADN, las compare e imprima un reporte por pantalla. Suponga que ambas cadenas y el umbral están definidos al inicio del código, por ejemplo:
El reporte de salida debe verse como el siguiente ejemplo:
Nota: no es necesario que copie en la hoja las cadenas completas para ADN1 y AND2.