[MÚSICA] [MÚSICA] Veamos cómo podemos usar los diccionarios para representar y manipular elementos que comparten características comunes dentro de nuestros programas, realizando algunos ejercicios. Retomemos el ejemplo de los diccionarios que representan los estudiantes de la universidad. Cada estudiante tendrá un nombre, código, género, carrera, promedio y semestre según créditos. Estas características son las que nos permiten definir las claves o llaves que podemos ver en el diccionario de ejemplo. Todos los diccionarios que representen estudiantes tendrán la misma estructura, es decir, las mismas claves. Pasemos, ahora sí, a nuestros ejercicios. Vamos a crear tres funciones sobre grupos de cuatro estudiantes, cada uno representado por uno de los diccionarios que vimos anteriormente. Empecemos con nuestra primera función. Debemos crear una función llamada buscar_estudiante que recibe los cuatro diccionarios que representan los estudiantes y un string que corresponde al nombre de un estudiante. La función debe retornar el diccionario del estudiante cuyo nombre es idéntico al dado por el parámetro o None, en caso de que ninguno de los estudiantes tenga dicho nombre. Se nos solicita asímismo crear el programa principal que nos permita ejecutar la función. Pasemos a Spider y veamos la solución. Tenemos nuestra función buscar_estudiante, que recibe como parámetro los cuatro diccionarios y el nombre. Vamos a empezar creando una variable en la que almacenaremos el diccionario del estudiante buscado, en caso de que exista. Lo llamaremos buscado y tendrá el valor None inicialmente, teniendo en cuenta que este es el valor a retornar en caso de que no se encuentre un estudiante con el nombre dado por parámetro. Ahora, debemos obtener el nombre de cada diccionario y evaluar si es igual al parámetro. En caso de ser así, asignar el diccionario a nuestra variable buscar. Para el caso del primero, nos queda entonces if estudiante uno nombre es igual igual a None, entonces, el buscado será igual al estudiante uno. Debemos hacer lo mismo para los otros estudiantes, teniendo en cuenta que, en este caso, podemos usar una cascada de condicionales you que tan pronto un estudiante cumpla la condición, no es necesario revisar los demás y podríamos pasar a retornar. you he creado los condicionales en cascada para los demás estudiantes. Solo nos queda faltando retornar, así que agregaré return buscar. Notemos que si ningún estudiante tiene el nombre dado, se mantendrá el valor inicial de nuestra variable, es decir, None, pero si alguno tiene el nombre, se retorna ese diccionario. De esta forma, you solucionamos el primer problema. Veamos ahora cómo nos quedaría el programa principal. Empezamos creando unos diccionarios de ejemplo y solicitando al usuario el nombre del estudiante a buscar, para luego invocar nuestra función, dando como parámetro los diccionarios y el nombre ingresado por el usuario. Finalmente, debemos evaluar si la función nos retorna None o uno de los estudiantes, para poder informar al usuario si el estudiante existe o no. Ejecutemos el programa y probemos. En este caso lo ejecutaré. Ahora. Primero ingresamos un nombre que exista, por ejemplo Lina, y vemos que nos informa que el estudiante efectivamente existe. Ahora intentemos con un nombre no presente en los diccionarios [AUDIO_EN_BLANCO] y vemos que ahora el programa nos informa que no existe, tal como era de esperarse. Continuemos con el segundo ejercicio. Ahora se pide crear la función avanzar_trimestre, que debe modificar los diccionarios de los cuatro estudiantes para avanzar el semestre según créditos en uno sin dar retorno alguno. Pasemos al código. you tenemos la aclaración de nuestra función con los cuatro estudiantes como parámetro y sin retorno. Lo que debemos hacer es sumar uno al semestre de cada diccionario. Empecemos entonces tomando el primer diccionario y de este obtenemos la llave SSC, correspondiente al semestre. Nos queda entonces, estudiante 1, la llave SSC, más igual uno, para que se tome el valor que tenía el semestre, se le sume uno y dicho resultado que he guardado en el diccionario. Nos quedaría lo mismo para los otros tres diccionarios. Y con esto you tendríamos completa la función. Como podemos ver, el programa principal es muy sencillo. Tenemos nuestros cuatro diccionarios, mostramos los semestres de todos antes de avanzar para poder ver el cambio y, luego, se llama la función sin necesidad de guardar su resultado en una variable, you que la función no tiene retorno. Luego, volvemos a mostrar el semestre para ver la diferencia. Ejecutemos y veamos que, efectivamente, se ve el cambio de semestre. Aquí podemos ver que efectivamente avanzó el semestre de los cuatro estudiantes. Pasemos a la última función. En esta se nos pide retornar un diccionario que tenga la información de los estudiantes que están en riesgo, es decir, cuyo promedio sea menor a tres cuatro. El diccionario que debemos retornar tiene que tener como claves los códigos de los estudiantes en riesgo y como valores sus promedios. Veamos el código. you tenemos definida nuestra función, así que empecemos creando el diccionario que retornaremos al final. Nos queda en riesgo igual y abrimos llaves, para crear un nuevo diccionario vacío. Ahora debemos evaluar para cada estudiante si su promedio es inferior a tres cuatro y, si es así, crear una entrada para dicho estudiante en el diccionario. Para el primer estudiante nos quedaría if estudiante uno, necesitamos de este estudiante el promedio, si es menor a 3.4, le decimos que en riesgo, como you utilizamos, estudiante uno código va a ser igual al promedio de dicho estudiante. En el cuerpo del condicional, podemos ver que en nuestro diccionario llamado en riesgo creamos una nueva entrada, a la que asignamos como llave el código del estudiante, el cual obtenemos usando la clave código sobre el estudiante. Y como valor, asignamos el promedio del estudiante usando esa clave sobre el diccionario del estudiante. Nos queda hacer lo mismo para los demás estudiantes. you he completado los condicionales para los demás, teniendo en cuenta que deben ser condicionales independientes, por lo que necesitamos evaluar todos. Y, finalmente, nos queda el retorno de nuestro diccionario en riesgo. you tenemos lista sí nuestra función. Ahora, para el programa principal, tenemos nuevamente los cuatro diccionarios creados, e invocamos la función y guardamos su resultado en una variable, que luego mostramos al usuario. Ejecutemos y veamos cómo se muestra el diccionario resultante con los códigos y promedios de los estudiantes considerados en riesgo. [MÚSICA]