From 383d9b1b983f01120e3b68bf7cb5375bdeed1933 Mon Sep 17 00:00:00 2001
From: Sasiri Juliana Vargas Urbano <vargass@jupyterMiLAB>
Date: Mon, 8 Feb 2021 19:08:29 -0500
Subject: [PATCH] cuadernos de jupyter

---
 ejercicio1.ipynb | 172 ++++++++++++++
 ejercicio2.ipynb | 397 +++++++++++++++++++++++++++++++++
 ejercicio3.ipynb | 568 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1137 insertions(+)
 create mode 100644 ejercicio1.ipynb
 create mode 100644 ejercicio2.ipynb
 create mode 100644 ejercicio3.ipynb

diff --git a/ejercicio1.ipynb b/ejercicio1.ipynb
new file mode 100644
index 0000000..7b15d27
--- /dev/null
+++ b/ejercicio1.ipynb
@@ -0,0 +1,172 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Tareas Clase 2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejercicio 1 - Lista de palabras"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Nombre:** Sasiri Juliana Vargas Urbano <br>\n",
+    "**Correo:** sasiri.vargas@correounivalle.edu.co <br>\n",
+    "**Usuario Mattermost:** vargass <br>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En este ejercicio se pide crear una función que como ingreso tenga palabras separadas por guiones y que retorne dichas palabras sin repeticiones y organizadas en orden alfabético. \n",
+    "\n",
+    "Para ello, se define una función llamada \"organizar\" que utiliza 4 funciones de python: _split,set,sorted,join_. \n",
+    "\n",
+    "A continuación se muestra la función con sus respectivos comentarios de funcionamiento."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def organizar(x):             #Ingresa un string con separación entre palabras de \"-\"\n",
+    "    lista=x.split(sep='-')    #Convierte a una lista el string identificando el separador con:\"sep='-'\" \n",
+    "    \n",
+    "    lista1=set(lista)         #Elimina los elementos repetidos de la lista\n",
+    "    \n",
+    "    lista2=sorted(lista1)     #Ordena alfabéticamente la lista\n",
+    "    \n",
+    "    final='-'.join(lista2)    #Une las componentes de la lista en un string separando cada palabra por un \"-\"\n",
+    "    \n",
+    "    return final"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Prueba del código:\n",
+    "\n",
+    "Se le pide ingresar al usuario las palabras a ordenar y retorna lo deseado en el ejercicio con la función \"organizar\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "##### Ejemplo:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'amarillo-rojo-verde'"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "#El resultado obtenido ingresando: rojo-amarillo-verde-amarillo\n",
+    "\n",
+    "organizar('rojo-amarillo-verde-amarillo')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "##### Prueba interactiva:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Ingrese palabras separadas por guiones \n",
+      "   Ejemplo: rojo-amarillo-verde-amarillo \n",
+      "agua-agua-sal-mar-arena-playa-playa\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "'agua-arena-mar-playa-sal'"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "#print('Ingrese palabras separadas por guiones \\n')\n",
+    "#print('Ejemplo: rojo-amarillo-verde-amarillo \\n')\n",
+    "\n",
+    "organizar(input('Ingrese palabras separadas por guiones \\n   Ejemplo: rojo-amarillo-verde-amarillo \\n'))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook ejercicio1.ipynb to html\n",
+      "[NbConvertApp] Writing 574907 bytes to ejercicio1.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "! jupyter nbconvert --to html ejercicio1.ipynb"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/ejercicio2.ipynb b/ejercicio2.ipynb
new file mode 100644
index 0000000..b0564b9
--- /dev/null
+++ b/ejercicio2.ipynb
@@ -0,0 +1,397 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Tareas Clase 2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejercicio 2 - Triangulo de Pascal"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Nombre:** Sasiri Juliana Vargas Urbano <br>\n",
+    "**Correo:** sasiri.vargas@correounivalle.edu.co <br>\n",
+    "**Usuario Mattermost:** vargass <br>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Parte 1"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En la primera parte del ejercicio se pide recibir un número entero y retornar la fila correspondiente del triangulo de Pascal y si el número ingresado no es un entero, entonces notificar un error.\n",
+    "\n",
+    "Para ello se importa una función de math: _factorial_ <br>\n",
+    "Y se hace uso de la funciión de python: _isinstance_.\n",
+    "\n",
+    "A continuación se presenta la función que realiza lo deseado en la primera parde del ejercicio, su funcionamiento se entiende siguiendo los comentarios en el código."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from math import factorial  #Se importa la función de math"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def Pascal(z):\n",
+    "      \n",
+    "    if isinstance(z,int):    #Si el número ingresado es un entero, entonces sigue el proceso:\n",
+    "        lista=[]\n",
+    "        \n",
+    "                             #Se hace un ciclo que retorna como una lista, los valores de las combinatorias\n",
+    "                             #de la fila del triangulo de Pascal correspondiente\n",
+    "\n",
+    "        for i in range(0,z+1,1):\n",
+    "            comb=factorial(z)/(factorial(i)*(factorial(z-i)))\n",
+    "            lista.append(int(comb))\n",
+    "        \n",
+    "        print(lista)         #Se imprime el resultado en pantalla\n",
+    "        \n",
+    "        \n",
+    "    else:                    #Si el número ingresado no es un entero:\n",
+    "        print(' -> El número ingresado no es un entero, por favor volver a ingresar')\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Ejemplo:"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Número entero**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(0)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 3, 3, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 5, 10, 10, 5, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Número no entero**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> El número ingresado no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(1.2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> El número ingresado no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(1+2j)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> El número ingresado no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascal(1E-2)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Parte 2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En la segunda parte del ejericio se pide hacer una modificación de la función anterior, en este caso se ingresa una lista de números y se retorna una lista con los valores correspondientes a la fila del triangulo de Pascal, sí la lista de números inicial es entero.\n",
+    "\n",
+    "Igualmente, el código se explica siguiendo los comentarios"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def Pascalmod(x):\n",
+    "    \n",
+    "    check=[]             #A diferencia del anterior codigo, se crea una lista para evaluar si todos los números\n",
+    "                         #ingresados son enteros\n",
+    "    \n",
+    "    for e in x:          #Se agrega un for para evaluar todas las componentes de la lista ingresada\n",
+    "        if isinstance(e,int):\n",
+    "            check.append('Verdadero')   #Se escribe en la lista 'check' la palabra 'Verdadero' si la componente de\n",
+    "                                        #la lista ingresada es un entero\n",
+    "        \n",
+    "        else:\n",
+    "            check.append('Falso')       #Se escribe en la lista 'check' la palabra 'Falso' si la componente de\n",
+    "                                        #la lista ingresada no es un entero\n",
+    "        \n",
+    "    ev=set(check)        #Se reducen las palabras repetidas\n",
+    "                         #Longitud del 'set' = 1 representa que todos los números de la lista ingresada son enteros\n",
+    "            \n",
+    "    if len(ev) != 1:     #Si en la lista ingresa un número no entero\n",
+    "        print(' -> Alguno de los números ingresados no es un entero, por favor volver a ingresar')\n",
+    "        \n",
+    "    else:                #Si en la lista todos los números son enteros\n",
+    "        \n",
+    "        listaf=[]        #Se agrega una nueva lista para imprimir esta\n",
+    "         \n",
+    "                         #Se agrega un for para escribir las componentes de la nueva lista, con el código presentado\n",
+    "                         #en la primera parte\n",
+    "                \n",
+    "        for e in range(0,len(x),1):\n",
+    "            \n",
+    "            y=int(x[e])\n",
+    "\n",
+    "            lista=[]\n",
+    "\n",
+    "            for i in range(0,y+1,1):\n",
+    "                comb=factorial(y)/(factorial(i)*(factorial(y-i)))\n",
+    "                lista.append(int(comb))\n",
+    "            \n",
+    "            listaf.append(lista)\n",
+    "        \n",
+    "        print(listaf)\n",
+    "        \n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Ejemplo"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Números enteros**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascalmod([0,1,2,3,4])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**No números enteros**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> Alguno de los números ingresados no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascalmod([0,1,2.,3,4])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> Alguno de los números ingresados no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascalmod([0,1,2,3+2j,4])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " -> Alguno de los números ingresados no es un entero, por favor volver a ingresar\n"
+     ]
+    }
+   ],
+   "source": [
+    "Pascalmod([0,1,2,3,4E-3])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook ejercicio2.ipynb to html\n",
+      "[NbConvertApp] Writing 591124 bytes to ejercicio2.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "!jupyter nbconvert --to html ejercicio2.ipynb"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/ejercicio3.ipynb b/ejercicio3.ipynb
new file mode 100644
index 0000000..228caa7
--- /dev/null
+++ b/ejercicio3.ipynb
@@ -0,0 +1,568 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Tareas Clase 2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejercicio 3 - Amigos congueros"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Nombre:** Sasiri Juliana Vargas Urbano <br>\n",
+    "**Correo:** sasiri.vargas@correounivalle.edu.co <br>\n",
+    "**Usuario Mattermost:** vargass <br>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Creación de diccionarios individuales:"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Se pide recopilar la información de 10 compañeros participantes de la CoNGA y 2 profesores, a continuación se escribe la información organizada en directorios."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#Suponiendo que ninguno de los entrevistados ha cumplido años aún\n",
+    "\n",
+    "Año_actual=2020"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "amigo_1={'nombre': 'Jalil',\n",
+    "         'apellido': 'Varela Manjarrés',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Cali',\n",
+    "          #Se hace la diferencia con el año actual para no tener que actualizar la edad por años\n",
+    "         'edad' : Año_actual-1999,                       \n",
+    "         'institución':'Universidad del Valle',\n",
+    "         'hobbie':'Correr y cine',\n",
+    "         'especialidad científica':'Átomos ultrafrios'}\n",
+    "\n",
+    "amigo_2={'nombre': 'Felipe',\n",
+    "         'apellido': 'Reyes Osorio',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Cali',\n",
+    "         'edad' : Año_actual-1998,\n",
+    "         'institución':'Universidad del Valle',\n",
+    "         'hobbie':'Ir al gimnasio',\n",
+    "         'especialidad científica':'Materia condensada'}\n",
+    "\n",
+    "amigo_3={'nombre': 'Jennifer',\n",
+    "         'apellido': 'Grisaless Casadiegos',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Bucaramanga',\n",
+    "         'edad' : Año_actual-1993,\n",
+    "         'institución':'Universidad Industrial de Santander',\n",
+    "         'hobbie':'Jugar rugbby y divulgación científica',\n",
+    "         'especialidad científica':'Astropartículas'}\n",
+    "\n",
+    "amigo_4={'nombre': 'Maria José',\n",
+    "         'apellido': 'Ramos Sotillo',\n",
+    "         'país': 'Venezuela',\n",
+    "         'residencia': 'Mérida',\n",
+    "         'edad' : Año_actual-1997,\n",
+    "         'institución':'Universidad de los Andes',\n",
+    "         'hobbie':'Escribir cuentos y novelas',\n",
+    "         'especialidad científica':'Física de Altas energías'}\n",
+    "\n",
+    "amigo_5={'nombre': 'David Leonardo',\n",
+    "         'apellido': 'Ramos Salamanca',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Bucaramanga',\n",
+    "         'edad' : Año_actual-1996,\n",
+    "         'institución':'Universidad Industrial de Santander',\n",
+    "         'hobbie':'Tocar guitarra',\n",
+    "         'especialidad científica':'Astrofísica relativista'}\n",
+    "\n",
+    "amigo_6={'nombre': 'Nicolás',\n",
+    "         'apellido': 'Fernández Cinquepalmi',\n",
+    "         'país': 'Argentina',\n",
+    "         'residencia': 'Perú',\n",
+    "         'edad' : Año_actual-1993,\n",
+    "         'institución':'Universidad Nacional Mayor de San Marcos',\n",
+    "         'hobbie':'Tocar piano',\n",
+    "         'especialidad científica':'Física Nuclear'}\n",
+    "\n",
+    "amigo_7={'nombre': 'Andrés David',\n",
+    "         'apellido': 'Florez Quintero',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Cali',\n",
+    "         'edad' : Año_actual-1998,\n",
+    "         'institución':'Universidad del Valle',\n",
+    "         'hobbie':'Movement culture',\n",
+    "         'especialidad científica':'Cosmología'}\n",
+    "\n",
+    "amigo_8={'nombre': 'Omar',\n",
+    "         'apellido': 'Asto',\n",
+    "         'país': 'Perú',\n",
+    "         'residencia': 'Lima',\n",
+    "         'edad' : Año_actual-1995,\n",
+    "         'institución':'Universidad Nacional de Ingenieria',\n",
+    "         'hobbie':'leer periódico',\n",
+    "         'especialidad científica':'Física de Altas Energías'}\n",
+    "\n",
+    "amigo_9={'nombre': 'Yhony',\n",
+    "         'apellido': 'Mamamni Arce',\n",
+    "         'país': 'Perú',\n",
+    "         'residencia': 'Lima',\n",
+    "         'edad' : Año_actual-1994,\n",
+    "         'institución':'Universidad Nacional Mayor de San Marcos',\n",
+    "         'hobbie':'Correr, natación, leer libros de filosofía, psicología, ciencia, ciencia ficción',\n",
+    "         'especialidad científica':'Física del estado solido'}\n",
+    "\n",
+    "amigo_10={'nombre': 'Alfonso',\n",
+    "         'apellido': 'Navas',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Bogotá',\n",
+    "         'edad' : Año_actual-1996,\n",
+    "         'institución':'Universidad Nacional de Colombia',\n",
+    "         'hobbie':'Crossfit',\n",
+    "         'especialidad científica':'Física de sistemas complejos, Ecología'}\n",
+    "\n",
+    "prof_1={'nombre': 'Luis',\n",
+    "         'apellido': 'Inunez',\n",
+    "         'país': 'Venezuela',\n",
+    "         'residencia': 'Bucaramanga',\n",
+    "         'edad' : Año_actual-1957,\n",
+    "         'institución':'Universidad Industrial de Santander',\n",
+    "         'hobbie':'Montañismo y submarinismo',\n",
+    "         'especialidad científica':'Astrofísica de Altas Energías'}\n",
+    "\n",
+    "prof_2={'nombre': 'Juan Carlos',\n",
+    "         'apellido': 'Basto Pineda',\n",
+    "         'país': 'Colombia',\n",
+    "         'residencia': 'Bucaramanga',\n",
+    "         'edad' : Año_actual - 1983,\n",
+    "         'institución':'Universidad Industrial de Santander',\n",
+    "         'hobbie':'Dibujar y caminatas',\n",
+    "         'especialidad científica':'Astronomía'}\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Creación del diccionario \"compas\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En el ejercicio se pide crear un diccionario llamado \"compas\", en el cual las keys son los usuarios en mattermost y retorna los respectivos diccionarios creados en la celda anterior. A continuación se crea el diccionario manualmente."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "compas={'jalil': amigo_1,\n",
+    "        'reyesf': amigo_2,\n",
+    "        'grisalesj': amigo_3,\n",
+    "        'ramosm': amigo_4,\n",
+    "        'ramosd': amigo_5,\n",
+    "        'fernandezn': amigo_6,\n",
+    "        'floreza': amigo_7,\n",
+    "        'omarasto': amigo_8,\n",
+    "        'mamaniy': amigo_9,\n",
+    "        'navasa': amigo_10,\n",
+    "        'Inunez': prof_1,\n",
+    "        'juan-pineda': prof_2\n",
+    "       }\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Ejemplo:**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Para mostrar el funcionamiento del diccionario se realiza:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Usuarios mattermost:  dict_keys(['jalil', 'reyesf', 'grisalesj', 'ramosm', 'ramosd', 'fernandezn', 'floreza', 'omarasto', 'mamaniy', 'navasa', 'Inunez', 'juan-pineda'])\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Impresión de las keys del diccionario\n",
+    "print('Usuarios mattermost: ', compas.keys())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "Para el primer usuario: \n",
+      "\n",
+      "{'nombre': 'Jalil', 'apellido': 'Varela Manjarrés', 'país': 'Colombia', 'residencia': 'Cali', 'edad': 21, 'institución': 'Universidad del Valle', 'hobbie': 'Correr y cine', 'especialidad científica': 'Átomos ultrafrios'}\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Impresión de los datos del primer usuario\n",
+    "print('\\nPara el primer usuario: \\n')\n",
+    "\n",
+    "print(compas['jalil'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Creación de funciones"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Funcion información:**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En el ejercicio también se pide realizar una función que como entrada tenga un diccionario y un pais de origen, y retorne las informaciones de las personas de ese país"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def info(dic, pais):\n",
+    "    \n",
+    "    valores=list(dic.values())\n",
+    "    \n",
+    "    for i in range(0,len(valores),1):\n",
+    "        \n",
+    "        lista=list(valores[i].values())\n",
+    "        \n",
+    "        tipo=list(valores[i].keys())\n",
+    "        \n",
+    "        if pais in lista:\n",
+    "            for i in range(0,len(lista),1):\n",
+    "                print(tipo[i]+': '+str(lista[i]) )\n",
+    "            print('\\n')\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Ejemplo:**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "nombre: Jalil\n",
+      "apellido: Varela Manjarrés\n",
+      "país: Colombia\n",
+      "residencia: Cali\n",
+      "edad: 21\n",
+      "institución: Universidad del Valle\n",
+      "hobbie: Correr y cine\n",
+      "especialidad científica: Átomos ultrafrios\n",
+      "\n",
+      "\n",
+      "nombre: Felipe\n",
+      "apellido: Reyes Osorio\n",
+      "país: Colombia\n",
+      "residencia: Cali\n",
+      "edad: 22\n",
+      "institución: Universidad del Valle\n",
+      "hobbie: Ir al gimnasio\n",
+      "especialidad científica: Materia condensada\n",
+      "\n",
+      "\n",
+      "nombre: Jennifer\n",
+      "apellido: Grisaless Casadiegos\n",
+      "país: Colombia\n",
+      "residencia: Bucaramanga\n",
+      "edad: 27\n",
+      "institución: Universidad Industrial de Santander\n",
+      "hobbie: Jugar rugbby y divulgación científica\n",
+      "especialidad científica: Astropartículas\n",
+      "\n",
+      "\n",
+      "nombre: David Leonardo\n",
+      "apellido: Ramos Salamanca\n",
+      "país: Colombia\n",
+      "residencia: Bucaramanga\n",
+      "edad: 24\n",
+      "institución: Universidad Industrial de Santander\n",
+      "hobbie: Tocar guitarra\n",
+      "especialidad científica: Astrofísica relativista\n",
+      "\n",
+      "\n",
+      "nombre: Andrés David\n",
+      "apellido: Florez Quintero\n",
+      "país: Colombia\n",
+      "residencia: Cali\n",
+      "edad: 22\n",
+      "institución: Universidad del Valle\n",
+      "hobbie: Movement culture\n",
+      "especialidad científica: Cosmología\n",
+      "\n",
+      "\n",
+      "nombre: Alfonso\n",
+      "apellido: Navas\n",
+      "país: Colombia\n",
+      "residencia: Bogotá\n",
+      "edad: 24\n",
+      "institución: Universidad Nacional de Colombia\n",
+      "hobbie: Crossfit\n",
+      "especialidad científica: Física de sistemas complejos, Ecología\n",
+      "\n",
+      "\n",
+      "nombre: Juan Carlos\n",
+      "apellido: Basto Pineda\n",
+      "país: Colombia\n",
+      "residencia: Bucaramanga\n",
+      "edad: 37\n",
+      "institución: Universidad Industrial de Santander\n",
+      "hobbie: Dibujar y caminatas\n",
+      "especialidad científica: Astronomía\n",
+      "\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Se hace el ejemplo con el diccionario \"compas\" y el país Colombia\n",
+    "\n",
+    "info(compas,'Colombia')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Función promedio de edades:**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Se pide que a partir del diccionario \"compas\" se calcule el promedio de las edades de los entrevistados"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#Solo funciona para el diccionario \"compas\" creado en este ejercicio\n",
+    "\n",
+    "def promedio(dic):\n",
+    "    \n",
+    "    valores=list(dic.values())     #Se crea una lista con los valores del diccionario\n",
+    "    \n",
+    "    prom=[]                        #Se crea una lista vacia\n",
+    "    \n",
+    "    for i in range(0,len(valores),1):    \n",
+    "        \n",
+    "        lista=list(valores[i].values())    #Se hace una lista del diccionario contenido en el diccionario ingresado\n",
+    "        \n",
+    "        prom.append(lista[4])              #La componente 4 que contiene la edad se añade a la lista prom\n",
+    "        \n",
+    "    return int(sum(prom)/float(len(prom))) #Se calcula el promedio"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Prueba:**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "28"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "promedio(compas)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Función instituciones de los participantes:**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Se pide mostrar todas las instituciones de los participantes contenidos en el diccionario \"compas\", sin repetición de instituciones."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#Solo funciona para el diccionario \"compas\" creado en este ejercicio\n",
+    "\n",
+    "def instituciones(dic):\n",
+    "    \n",
+    "    valores=list(dic.values())     #Se crea una lista con los valores del diccionario\n",
+    "    \n",
+    "    inst=[]                        #Se crea una lista vacia\n",
+    "    \n",
+    "    for i in range(0,len(valores),1):\n",
+    "        \n",
+    "        lista=list(valores[i].values())    #Se hace una lista del diccionario contenido en el diccionario ingresado\n",
+    "        \n",
+    "        inst.append(lista[5])              #La componente 5 que contiene el str de la institución se añade a la lista inst\n",
+    "        \n",
+    "    return set(inst)                       #Se retornan las instituciones sin repetición\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Prueba:**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{'Universidad Industrial de Santander',\n",
+       " 'Universidad Nacional Mayor de San Marcos',\n",
+       " 'Universidad Nacional de Colombia',\n",
+       " 'Universidad Nacional de Ingenieria',\n",
+       " 'Universidad de los Andes',\n",
+       " 'Universidad del Valle'}"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "instituciones(compas)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook ejercicio3.ipynb to html\n",
+      "[NbConvertApp] Writing 608143 bytes to ejercicio3.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "!jupyter nbconvert --to html ejercicio3.ipynb"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
-- 
GitLab