From 4709cb838bc4cd88ae2a53628a1bca71d24ea95a Mon Sep 17 00:00:00 2001 From: Jesus David Bermudez Sanchez <jdbermudezs@unal.edu.co> Date: Fri, 12 Feb 2021 12:14:09 -0500 Subject: [PATCH] se termina el ejercicio 3 con todas las explicaciones correspondientes --- ejercicio3.ipynb | 164 +++++++++++++++++++++++++---------------------- 1 file changed, 89 insertions(+), 75 deletions(-) diff --git a/ejercicio3.ipynb b/ejercicio3.ipynb index 1f8f94c..9781cd1 100644 --- a/ejercicio3.ipynb +++ b/ejercicio3.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# *Mi nombre es Jesus David Bermudez Sanchez, soy estudiante de la Maestria en Fisica de la Universidad Nacional de Colombia, Sede Bogotá*\n", + "# *Mi nombre es Jesus David Bermudez Sanchez y soy estudiante de la Maestria en Fisica de la Universidad Nacional de Colombia, Sede Bogotá*\n", "\n", "---" ] @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -103,7 +103,7 @@ " 'hobbie': 'gimnasio'}" ] }, - "execution_count": 89, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -130,7 +130,7 @@ " 'hobbie': 'correr, natacion, leer'}" ] }, - "execution_count": 90, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -146,26 +146,26 @@ "source": [ "---\n", "### Solucion a la parte 2\n", - "En la siguiente celda creamos una funcion que llamamos `info_por_paises`, la cual recibe tres argumentos. El primero es el diccionario compas que creamos anteriormente. El segundo es una variable de tipo _string_ donde escribimos el pais de origen de las personas. El tercer y ultimo argumento es una variable de tipo _bool_ cuyo valor por defecto es `False`; si el ususario ingresa `True`, entre la informacion que imprime la funcion, estará el usuario de mattermost.\n", + "En la siguiente celda creamos una funcion que llamamos `info_por_paises(dicc,pais,usuario)`, la cual recibe tres argumentos. El primero es el diccionario compas que creamos anteriormente. El segundo es una variable de tipo _string_ donde escribimos el pais de origen de las personas. El tercer y ultimo argumento es una variable de tipo _bool_ cuyo valor por defecto es `False`; si el ususario ingresa `True`, entre la informacion que imprime la funcion, estará el usuario de mattermost.\n", "\n", "Lo primero que hace esta función es, hacer una copia del diccionario x usando el metodo `.copy()`.A esta copia la llame `copia_compas`.\n", "\n", "Esto lo hice porque _creo_ que asi evito posibles problemas.\n", "\n", - "La siguiente linea ejecuta el metodo `.items` del diccionario `copia_compas`. Esto crea una lista cuyos elementos son las tuplas `(llave,valor)`. Con esta lista es con la que trabaja la funcion.\n", + "La siguiente linea ejecuta el metodo `.items` del diccionario `copia_compas`. Este metodo crea una lista cuyos elementos son las tuplas `(llave,valor)`. Con esta lista es con la que trabaja la funcion.\n", "(_Basicamente, converti el diccionario compas en una lista_). A esta lista la llame `keys_and_values`.\n", "\n", "Es importante entender que en las tuplas de la lista `keys_and_values`, el primer elemento es un _string_, y que el segundo elemento es un diccionario de Python.\n", "\n", - "Para añadir el usuario de mmattermost, comprobamos si la variable _bool_ z es `True`. En caso afirmativo, hacemos un loop por la lista `keys_and_values`, añadiendo a cada uno de los diccionarios (`values`) una nueva llave llamada `usuario mattermost`, cuyo valor será la correspondiente llave (`key`).\n", + "Para añadir el usuario de mattermost, comprobamos si la variable _bool_ ``z`` es `True`. En caso afirmativo, hacemos un loop por la lista `keys_and_values`, añadiendo a cada uno de los diccionarios (`values`) una nueva llave llamada `usuario mattermost`, cuyo valor será la correspondiente llave (`key`).\n", "\n", - "Para imprimir la informacion de las personas segun su pais de origen. Hacemos un ciclo for que \"recorre\" cada una de las tuplas en la lista `keys_and_values`. \n", - "En cada iteración se comprueba si el valor de la llave `\"pais\"` del diccionario coincide con el pais que introdujo el usuario. En caso afirmativo, se imprime \"apropiadamente\" el contenido del diccionario.\n" + "Para imprimir la informacion de las personas segun su pais de origen. Hacemos un ciclo `for` que \"recorre\" cada una de las tuplas en la lista `keys_and_values`. \n", + "En cada iteración se comprueba si el **valor** de la llave `\"pais\"` del diccionario coincide con el pais que introdujo el usuario. En caso afirmativo, se imprime \"apropiadamente\" el contenido del diccionario.\n" ] }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -217,7 +217,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -277,13 +277,22 @@ "residencia : Caracas\n", "especialidad cientifica : GeofÃsica\n", "institucion : Universidad Central de Venezuela\n", - "hobbie : Artes Marciales\n", - "\n" + "hobbie : Artes Marciales\n" ] + }, + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "print(info_por_paises(compas,\"Venezuela\")) " + "info_por_paises(compas,\"Venezuela\")" ] }, { @@ -296,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -322,18 +331,39 @@ "especialidad cientifica : Fisica del Estado Solido\n", "institucion : Universidad Nacional Mayor de San Marcos\n", "hobbie : correr, natacion, leer\n", - "usuario mattermost : mamaniy\n", - "\n" + "usuario mattermost : mamaniy\n" ] + }, + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "print(info_por_paises(compas,\"Perú\",True)) " + "info_por_paises(compas,\"Perú\",True) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solucion a la parte 3\n", + "\n", + "Para obtener el promedio de las edades de las personas, creamos una función llamada `promedio_edad_compas(dic)`, la cual toma como argumento el diccionario compas.\n", + "Luego, usando el metodo `.values()` del diccionario `dic`, creamos una lista que contiene todos los diccionarios con la informacion de las personas.\n", + "Usando _list_comprehension_ creamos una lista donde guardamos las edades de las personas.\n", + "Finalmente, usamos la funcion `sum()` incorporada en Python para sumar los elementos en la lista `edades`; y dividimos entre el numero de elementos de la lista usando la funcion `len()`." ] }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -352,24 +382,41 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "27.615384615384617\n" + "El promedio de edad de las personas en el diccionario compas es 27.615384615384617\n" ] } ], "source": [ - "print(promedio_edad_compas(compas))" + "print(\"El promedio de edad de las personas en el diccionario compas es\",promedio_edad_compas(compas))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solucion a la parte 4\n", + "\n", + "El procedimiento para obtener las instituciones donde estudian y/o trabajan los compas es muy similar al caso anterior. \n", + "\n", + "Creamos una funcion llamada `instituciones_compas(dic)` la cual recibe como argumento el diccionario compas. \n", + "\n", + "Guardamos en una lista los diccionarios que contienen la información de las personas usando el metodo `.values()`.\n", + "\n", + "Usamos la función `set()` para quitar las instituciones repetidas de la lista anterior.\n", + "\n", + "Imprimimos los elementos del conjunto `set_insti` de manera que se vea una institucion por linea." ] }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -382,7 +429,7 @@ " \n", " dicc_personas=x.values()\n", " \n", - " # Hago una lista de las instituciones donde estudian y/0 trabajan los compas\n", + " # Hago una lista de las instituciones donde estudian y/o trabajan los compas\n", " # Esta lista puede contener elementos repetidos\n", " lista_insti=[dicc[\"institucion\"] for dicc in dicc_personas]\n", " \n", @@ -394,51 +441,23 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Universidad Nacional de Colombia\n", - "CNRS\n", - "Universidad Nacional Mayor de San Marcos\n", + "Universidad Central de Venezuela\n", + "Universidad del Valle\n", "Universidad de los Andes\n", + "Universidad Centroccidental Lisandro Alvarado\n", + "Universidad Industrial de Santander\n", + "Universidad Nacional de Colombia\n", "Universidad Simon Bolivar\n", - "Universidad del Valle\n", - "Universidad Central de Venezuela\n", "Universidad Antonio Nariño\n", - "Universidad Industrial de Santander\n", - "Universidad Centroccidental Lisandro Alvarado\n", - "\n" - ] - } - ], - "source": [ - "\n", - "print(instituciones_compas(compas))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Bibliografia\n", - "\n", - "+ Imprimir bonito el contenido de un diccionario: https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Esto sale si el argumento es True\n" + "CNRS\n", + "Universidad Nacional Mayor de San Marcos\n" ] }, { @@ -447,28 +466,23 @@ "''" ] }, - "execution_count": 98, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "def f_prueba(ss=False):\n", - " if ss:\n", - " print(\"Esto sale si el argumento es True\")\n", - " else:\n", - " print(\"Esto sale si el argumento es False\")\n", - " return \"\"\n", - "\n", - "f_prueba(True)" + "instituciones_compas(compas)" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "### Bibliografia\n", + "\n", + "+ Imprimir bonito el contenido de un diccionario: https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/" + ] } ], "metadata": { -- GitLab