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