From 940aa6adcf643989c88a25f0533f8a2c74bb5c09 Mon Sep 17 00:00:00 2001
From: Jalil Varela Manjarres <varelaj@jupyterMiLAB>
Date: Sun, 7 Feb 2021 23:14:15 -0500
Subject: [PATCH] Ejercicios terminados

---
 Ejercicio1.ipynb | 164 ++++++++++++++++---
 Ejercicio2.ipynb | 245 ++++++++++++++++++++--------
 Ejercicio3.ipynb | 406 ++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 662 insertions(+), 153 deletions(-)

diff --git a/Ejercicio1.ipynb b/Ejercicio1.ipynb
index 446f461..990fa3f 100644
--- a/Ejercicio1.ipynb
+++ b/Ejercicio1.ipynb
@@ -1,70 +1,182 @@
 {
  "cells": [
   {
-   "cell_type": "code",
-   "execution_count": 1,
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Jalil Varela Manjarres\n",
+    "\n",
+    "## Ejercicio 1\n",
+    "## En este ejercicio se busca crear un un programa en python que acepte una lista de palabras separadas por guiones e imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones, después de ordenarlas alfabéticamente\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
    "metadata": {},
-   "outputs": [],
    "source": [
-    "import numpy as np"
+    "Se almacena una variable correspondiente a la lista de palabras separadas por guiones que recibe el programa. Las palabras se almacenan en variables tipo string "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "w-d-z-a\n",
-      "a-d-w-z\n"
+      "s-a-s\n"
      ]
     }
    ],
    "source": [
-    "i=input()\n",
+    "\n",
+    "i=input()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Funcion encargada de imprimir las mismas palabras que recibe el programa, sin repeticion y nuevamente separadas por guiones. Esta debe recibir un String"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n",
     "\n",
     "def orden(f):\n",
-    "    x='-'.join(sorted(set(f.split('-'))))\n",
+    "    \n",
+    "    \n",
+    "    #la funcion split('-') acuando sobre  argumento f tipo String, transforma el mismo en una lista \n",
+    "    #almacenando cada elemento de la lista con las palabras separadas por un guion.\n",
+    "    \n",
+    "    c=f.split('-')\n",
+    "    \n",
+    "    #La funcion set() transforma la lista en un conjunto, esto se realiza para eliminar los elementos repetidos.\n",
+    "    \n",
+    "    a=set(c)\n",
+    "    \n",
+    "    #La funcion sorted() se encarga de organizar los elementos del conjunto por orden alfabetico.\n",
+    "    \n",
+    "    y=sorted(a)\n",
+    "    \n",
+    "    #Finalmente se transforma de nuevo a un string con la funcion '-'.join(), la cual concatena los elementos de una lista\n",
+    "    #y los transforma en un String, separados por un guion.\n",
+    "    \n",
+    "    x='-'.join(y)\n",
+    "    \n",
+    "    #Se imprime el resultado obtenido\n",
+    "    \n",
     "    print(x)\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Se evalua la funcion en el argumento recibido por el programa"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "a-s\n"
+     ]
+    }
+   ],
+   "source": [
     "\n",
-    "orden(i)"
+    "orden(i)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejemplos\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 5,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "comida-dos-mil-pollo-uno\n"
+     ]
+    }
+   ],
+   "source": [
+    "orden('uno-dos-mil-pollo-comida')"
+   ]
   },
   {
    "cell_type": "code",
-   "execution_count": 51,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
-     "ename": "NameError",
-     "evalue": "name 'da' is not defined",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-51-2bc23ea85970>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mda\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;31mNameError\u001b[0m: name 'da' is not defined"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "memo-neno-olivia-pepe\n"
      ]
     }
    ],
-   "source": []
+   "source": [
+    "orden('pepe-neno-memo-olivia')"
+   ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 15,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Alberto-Juanito-Mauricio-Pepe-Zuluaga\n"
+     ]
+    }
+   ],
+   "source": [
+    "orden('Zuluaga-Zuluaga-Juanito-Alberto-Alberto-Pepe-Mauricio')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook Ejercicio1.ipynb to html\n",
+      "[NbConvertApp] Writing 576316 bytes to Ejercicio1.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "!jupyter nbconvert --to html Ejercicio1.ipynb"
+   ]
   }
  ],
  "metadata": {
diff --git a/Ejercicio2.ipynb b/Ejercicio2.ipynb
index a74b17c..ba0f615 100644
--- a/Ejercicio2.ipynb
+++ b/Ejercicio2.ipynb
@@ -1,40 +1,94 @@
 {
  "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Jalil Varela Manjarres\n",
+    "\n",
+    "## Ejercicio 2\n",
+    "\n",
+    "* En este ejercicio se busca crear   una rutina  que reciba como entrada un número entero, n, e imprima losnúmeros en la n-ésima fila del triángulo de Pascal. verificando si el número n es entero, o arrojaranjo un mensaje informando que ha habido un error del usuario en caso contrario.\n",
+    "\n"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 21,
    "metadata": {},
    "outputs": [],
    "source": [
+    "#Librerias que se van a usar.\n",
     "import numpy as np\n",
     "import math"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Funcion encargada de recibir un numero n y k devolver el número de combinaciones sin repetición de k elementos elegidos entre los n se nota habitualmente, estoscorresponden al elemento k-esimo de la fila n-esima del triangulo de Pascal."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n",
+    "def combinatoria(n,k): \n",
+    "    return int(math.factorial(n)/(math.factorial(k)*math.factorial(n-k)))\n"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 23,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "1.0"
+       "1"
       ]
      },
-     "execution_count": 2,
+     "execution_count": 23,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "def combinatoria(n,k): \n",
-    "    return math.factorial(n)/(math.factorial(k)*math.factorial(n-k))\n",
+    "# Ejemplo del funcionamiento.\n",
     "combinatoria(5,0)"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Funcion encargada de recibir un numero n y retornar una lista con los elementos de la fila n-esima del triangulo de Pascal"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def Pascal(n):\n",
+    "    #Se define a x como una lista\n",
+    "    x=[]\n",
+    "    #Se utiliza un for, para ir llenando los elementos de la lista con los elementos de la fila de pascal.\n",
+    "    for k in range(0,n+1):\n",
+    "        #Se agrea a la lista el elemento k-esimo de la fila n-esima del triangulo de pascal.\n",
+    "        x.append(combinatoria(n,k))\n",
+    "    #Se retorna una lista con los elementos de la fila n-esima del triagulo de Pascal.\n",
+    "    return x\n"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 25,
    "metadata": {},
    "outputs": [
     {
@@ -43,36 +97,51 @@
        "[1, 5, 10, 10, 5, 1]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 25,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "def Pascal(n):\n",
-    "    x=[]\n",
-    "    for k in range(0,n+1):\n",
-    "        x.append(int(combinatoria(n,k)))\n",
-    "    return x\n",
-    "Pascal(5)"
+    "# Ejemplo del funcionamiento.\n",
+    "Pascal(5)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Funcion encargada de  verificar si el número ingresado  es entero e imprimiendo los números de la n-ésima fila del triángulo de Pascal, o arrojaranjo un mensaje informando que ha habido un error del usuario en caso contrario.\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 26,
    "metadata": {},
    "outputs": [],
    "source": [
+    "\n",
     "def pasc(n):\n",
+    "    #Determina si el numero ingresado es de tipo entero.\n",
     "    if type(n)==type(3):\n",
+    "        #Imprime los números de la n-ésima fila del triángulo de Pascal en una lista.\n",
     "        print(Pascal(n))\n",
+    "    #Si el elemento ingresado no es de tipo entero, arroja un mensaje de error.\n",
     "    else :\n",
+    "        # Imprime el mensaje de error.\n",
     "        print(\"Su numero ingresado no es entero\")"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejemplos"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 27,
    "metadata": {},
    "outputs": [
     {
@@ -84,43 +153,78 @@
     }
    ],
    "source": [
+    "#Ejemeplo1\n",
     "pasc(5.)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 5, 10, 10, 5, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Ejemplo2\n",
+    "pasc(5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "*  se modifica la rutina anterior para que el programa reciba un número variable de argumentos: n1, n2, n3,… y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1 del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así sucesivamente.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Funcion encargada de recibir un número variable de argumentos: n1, n2, n3,… , **almacenados en una lista** y retornar una lista cuyo primer elemento es una lista conteniendo los números en la fila n1 del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así sucesivamente. verificando que cada elemento n-esimo sea entero, de lo contrario arrojando un mensaje de error."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
    "metadata": {},
    "outputs": [],
    "source": [
     "\n",
     "def pasc2(*args):\n",
-    " #   list(args)\n",
-    "#    print(type(args[0][2]))\n",
-    "#    print(len(args[0]))\n",
+    "    #Se incializa una lista que almacenara los numeros de pascal.\n",
     "    X=[]\n",
+    "    #Se realiza un loop para llenar los elemento de la lista.\n",
     "    for i in range(len(args[0])):\n",
+    "        #Se determina si cada argumento i-esimo de la lista es de tipo entero.\n",
     "        if type(args[0][i])==type(3):\n",
+    "            #Almacena en la lista otra lista con los correspondiente numeros de pascal de la fila i-esima.\n",
     "            X.append(Pascal(args[0][i]))\n",
     "#            print(X)\n",
     "        else :\n",
+    "        #Si no es de tipo entero, entonces arroja un mensaje de error.\n",
     "            print(f\"el numero en la posicion {i+1} no es entero\")\n",
+    "            #La funcion termina.\n",
     "            return 0\n",
     "    print(X)\n",
-    "          \n",
-    "            \n",
-    "    \n",
-    "            \n",
-    "\n",
-    "            \n",
-    "\n",
-    "\n",
-    "        "
+    "          "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejemplos"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 30,
    "metadata": {},
    "outputs": [
     {
@@ -132,60 +236,63 @@
     }
    ],
    "source": [
-    "pasc2([1,2,3])\n",
-    "\n"
+    "#Ejemplo1\n",
+    "pasc2([1,2,3])"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 31,
    "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[[1, 4, 6, 4, 1], [1], [1, 5, 10, 10, 5, 1]]\n"
+     ]
+    }
+   ],
    "source": [
-    "range?\n"
+    "#Ejemplo2\n",
+    "pasc2([4,0,5])"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 32,
    "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[[1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 1], [1, 6, 15, 20, 15, 6, 1]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Ejemplo3\n",
+    "pasc2([8,1,6])"
+   ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 33,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook Ejercicio2.ipynb to html\n",
+      "[NbConvertApp] Writing 585246 bytes to Ejercicio2.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "!jupyter nbconvert --to html Ejercicio2.ipynb"
+   ]
   }
  ],
  "metadata": {
diff --git a/Ejercicio3.ipynb b/Ejercicio3.ipynb
index 42640b8..364e1df 100644
--- a/Ejercicio3.ipynb
+++ b/Ejercicio3.ipynb
@@ -1,133 +1,411 @@
 {
  "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Jalil Varela Manjarres\n",
+    "\n",
+    "## Ejercicio 3\n",
+    "* Se crea un diccionario llamado “compas”, donde cada elemento tiene como llave el nombre de usuario en mattermost de un compañero, tal que si depliego el valor almacenado, por ejemplo en compas[“juan-pineda”], lo que obtengo es a la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”, “institución”, “hobbie”"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Diccionarios llamados por el nombre de usuario de mattermos con las llaves  “nombre”, “apellido”, “país”, “residencia”, “edad”, “institución”, “hobbie”."
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 19,
    "metadata": {
     "scrolled": true
    },
+   "outputs": [],
+   "source": [
+    "#Estudiantes\n",
+    "\n",
+    "andreatugores= {\n",
+    "    'nombre': 'Andrea Carolina',\n",
+    "    'apellido':'Tugores Hernández',\n",
+    "    'residencia':'Caracas',\n",
+    "    'edad':'24',\n",
+    "    'pais':'Venezuela',\n",
+    "    'especialidad':'Fisica médica',\n",
+    "    'institucion' : 'Universidad Central de Venezuela',\n",
+    "    'hobbie':'Tennis'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "bermudezj={\n",
+    "    'nombre': 'Jesus David',\n",
+    "    'apellido':'Bermudez Sanchez',\n",
+    "    'residencia':'Bogotá',\n",
+    "    'edad':'24',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Estado Solido',\n",
+    "    'institucion' : 'Universidad Nacional de Colombia',\n",
+    "    'hobbie':'enderismo y montar en bicicleta'\n",
+    "}\n",
+    "\n",
+    "britod={\n",
+    "    'nombre': 'Daniel Arturo',\n",
+    "    'apellido':'Brito Urbina',\n",
+    "    'residencia':'Caracas',\n",
+    "    'edad':'26',\n",
+    "    'pais':'Venezuela',\n",
+    "    'especialidad':'Teoria de Campos',\n",
+    "    'institucion' : 'Universidad Central de Venezuela',\n",
+    "    'hobbie':'Patinetas, Bicicletas y Video juegos'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "fernandezn={\n",
+    "    'nombre': 'Nicolás',\n",
+    "    'apellido':'Fernández Cinquepalmi',\n",
+    "    'residencia':'Lima',\n",
+    "    'edad':'27',\n",
+    "    'pais':'Argentina',\n",
+    "    'especialidad':'Fisica Nuclear',\n",
+    "    'institucion' : 'Universidad Nacional Mayor de San Marcos',\n",
+    "    'hobbie':'Piano'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "\n",
+    "grisalesj={\n",
+    "    'nombre': 'Jennifer',\n",
+    "    'apellido':'Grisales',\n",
+    "    'residencia':'Bucaramanga',\n",
+    "    'edad':'27',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Astropartículas',\n",
+    "    'institucion' : 'Universidad Industrial de Santander',\n",
+    "    'hobbie':'Rugby, correr, yoga'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "ramosd={\n",
+    "    'nombre': 'David',\n",
+    "    'apellido':'Ramos',\n",
+    "    'residencia':'Bucaramanga',\n",
+    "    'edad':'24',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Astrofísica relativista',\n",
+    "    'institucion' : 'Universidad Industrial de Santander',\n",
+    "    'hobbie':'tocar guitarra'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "hernandezj={\n",
+    "    'nombre': 'Juan David',\n",
+    "    'apellido':'Hernandez',\n",
+    "    'residencia':'Bogota',\n",
+    "    'edad':'24',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Electrodinamica cuántica',\n",
+    "    'institucion' : 'Universidad Nacional de Colombia',\n",
+    "    'hobbie':'Leer, jugar en el computador'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "malamboj={\n",
+    "    'nombre': 'Jorge Enrique',\n",
+    "    'apellido':'Malambo Martínez',\n",
+    "    'residencia':'Bogota',\n",
+    "    'edad':'39',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Modelaje y simulación - ciencia de materiales',\n",
+    "    'institucion' : 'Universidad Nacional de Colombia',\n",
+    "    'hobbie':'Talla en madera - ecoturismo'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "martinezj={\n",
+    "    'nombre': ' Jocabed',\n",
+    "    'apellido':'Martínez',\n",
+    "    'residencia':'Caracas',\n",
+    "    'edad':'22',\n",
+    "    'pais':'Venezuela',\n",
+    "    'especialidad':'Modelaje y simulación - ciencia de materiales',\n",
+    "    'institucion' : 'Universidad Central de Venezuela',\n",
+    "    'hobbie':'Musica'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "pinzonc={\n",
+    "    'nombre': 'Carlos Andres',\n",
+    "    'apellido':'Pinzon Osorio',\n",
+    "    'residencia':'Colombia',\n",
+    "    'edad':'30',\n",
+    "    'pais':'Bogota',\n",
+    "    'especialidad':'Ingeniería física ',\n",
+    "    'institucion' : 'Universidad Antonio de Nariño',\n",
+    "    'hobbie':'Atletismo'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "\n",
+    "\n",
+    "\n",
+    "#Profesores\n",
+    "\n",
+    "juan_pineda={\n",
+    "    'nombre': 'Juan Carlos',\n",
+    "    'apellido':'Basto Pineda',\n",
+    "    'residencia':'Bucaramanga',\n",
+    "    'edad':'37',\n",
+    "    'pais':'Colombia',\n",
+    "    'especialidad':'Astronomia',\n",
+    "    'institucion' : 'Universidad Industrial de Santander',\n",
+    "    'hobbie':'Dibujar, caminatas'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "Inunez={\n",
+    "    'nombre': 'Luis',\n",
+    "    'apellido':'Núñez',\n",
+    "    'residencia':'Bucaramanga',\n",
+    "    'edad':'64',\n",
+    "    'pais':'Venezuela',\n",
+    "    'especialidad':'Astrofisica de Altas Energías',\n",
+    "    'institucion' : 'Universidad Industrial de Santander',\n",
+    "    'hobbie':'Cocina'\n",
+    "}\n",
+    "\n",
+    "\n",
+    "#Dicciomario compas\n",
+    "\n",
+    "\n",
+    "\n",
+    "compas={\n",
+    "    'andreatugores' : andreatugores,\n",
+    "    'bermudezj' : bermudezj,\n",
+    "    'britod' : britod,\n",
+    "    'fernandezn': fernandezn,\n",
+    "    'grisalesj' : grisalesj,\n",
+    "    'ramosd' : ramosd,\n",
+    "    'hernandezj' : hernandezj,\n",
+    "    'malamboj' : malamboj,\n",
+    "    'martinezj' : martinezj,\n",
+    "    'pinzonc' : pinzonc,\n",
+    "    'juan_pineda' : juan_pineda,\n",
+    "    'Inunez' : Inunez   \n",
+    "}\n",
+    "\n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "mexico\n"
+      "Venezuela\n"
      ]
     }
    ],
    "source": [
-    "juanpineda= {\n",
-    "    'nombre': 'JuanPineda',\n",
-    "    'apellido':'1',\n",
-    "    'pais': 'mexico',\n",
-    "    'residencia':'1',\n",
-    "    'edad':'1',\n",
-    "    'institucion':'colegio1',\n",
-    "    'hobbie':'1'\n",
-    "}\n",
-    "\n",
-    "\n",
-    "camilo={\n",
-    "    'nombre': 'Camilo',\n",
-    "    'apellido':'2',\n",
-    "    'pais':'mexico',\n",
-    "    'residencia':'2',\n",
-    "    'edad':'2',\n",
-    "    'institucion':'colegio1',\n",
-    "    'hobbie':'2'\n",
-    "    \n",
-    "}\n",
-    "\n",
-    "compas={\n",
-    "    'juanpineda': juanpineda,\n",
-    "    'camilo':camilo\n",
-    "}\n",
-    "print(compas['juanpineda']['pais'])"
+    "#Ejemplo\n",
+    "print(compas['Inunez']['pais'])\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "* Funcion encargada de recibir dos variables, una variable tipo diccionario con la informacion de los compañeros, y la otra tipo string, asociada con el pais, esta funcion devuelve una Tabla con las columnas asociadas a nombre,apellido,residencia,edad,pais,especialidad,institucion,hobbie, separadas por un -, de los usuarios del diccionario unicamente asociados al pais especificado en el argumento"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 38,
    "metadata": {
     "scrolled": true
    },
+   "outputs": [],
+   "source": [
+    "#Tabla Organizada \n",
+    "def Orden(compas,b):\n",
+    "    #Imprime los elementos de la tabla en el orden de la informacion de del diccionario, separados por un -\n",
+    "    print('nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie \\n')\n",
+    "#    print('-'.join(list((compas['pinzonc'].keys())))+'\\n')\n",
+    "#   itera sobre las llaves del diccionario con los compañeros de LaConga y revisa si el pais es el mismo que el del argumento\n",
+    "    for i in compas.keys():\n",
+    "#        print(type(i))\n",
+    "        if compas[i]['pais']==b:\n",
+    "#         De ser el mismo pinta los datos asociados a este usuario\n",
+    "          print('-'.join(list((compas[i].values())))+'\\n' )\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ejemplos"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "nombre apellido pais residencia edad institucion hobbie\n",
-      "JuanPineda 1 mexico 1 1 colegio1 1\n",
-      "Camilo 2 mexico 2 2 colegio1 2\n"
+      "nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie \n",
+      "\n",
+      "Jesus David-Bermudez Sanchez-Bogotá-24-Colombia-Estado Solido-Universidad Nacional de Colombia-enderismo y montar en bicicleta\n",
+      "\n",
+      "Jennifer-Grisales-Bucaramanga-27-Colombia-Astropartículas-Universidad Industrial de Santander-Rugby, correr, yoga\n",
+      "\n",
+      "David-Ramos-Bucaramanga-24-Colombia-Astrofísica relativista-Universidad Industrial de Santander-tocar guitarra\n",
+      "\n",
+      "Juan David-Hernandez-Bogota-24-Colombia-Electrodinamica cuántica-Universidad Nacional de Colombia-Leer, jugar en el computador\n",
+      "\n",
+      "Jorge Enrique-Malambo Martínez-Bogota-39-Colombia-Modelaje y simulación - ciencia de materiales-Universidad Nacional de Colombia-Talla en madera - ecoturismo\n",
+      "\n",
+      "Juan Carlos-Basto Pineda-Bucaramanga-37-Colombia-Astronomia-Universidad Industrial de Santander-Dibujar, caminatas\n",
+      "\n"
      ]
     }
    ],
    "source": [
-    "#Tabla Organizada\n",
-    "nombres=['juanpineda','camilo']\n",
-    "def Orden(compas,b):\n",
-    "    print(' '.join(list((compas['camilo'].keys()))))\n",
-    "    for i in nombres:\n",
-    "#        print(type(i))\n",
-    "        if compas[i]['pais']==b:\n",
-    "        \n",
-    "          print(' '.join(list((compas[i].values()))))\n",
-    "\n",
     "    \n",
-    "    \n",
-    " \n",
-    "Orden(compas,'mexico')"
+    "Orden(compas,'Colombia')"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 40,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "1.5\n"
+      "nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie \n",
+      "\n",
+      "Andrea Carolina-Tugores Hernández-Caracas-24-Venezuela-Fisica médica-Universidad Central de Venezuela-Tennis\n",
+      "\n",
+      "Daniel Arturo-Brito Urbina-Caracas-26-Venezuela-Teoria de Campos-Universidad Central de Venezuela-Patinetas, Bicicletas y Video juegos\n",
+      "\n",
+      " Jocabed-Martínez-Caracas-22-Venezuela-Modelaje y simulación - ciencia de materiales-Universidad Central de Venezuela-Musica\n",
+      "\n",
+      "Luis-Núñez-Bucaramanga-64-Venezuela-Astrofisica de Altas Energías-Universidad Industrial de Santander-Cocina\n",
+      "\n"
      ]
     }
    ],
+   "source": [
+    "Orden(compas,'Venezuela')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "*  Se crea un codigo para calcular, a partir del diccionario, el promedio de edad de todas las personas en él"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 44,
+   "metadata": {},
+   "outputs": [],
    "source": [
     "#Media de la edad\n",
     "x=0\n",
-    "for i in nombres:\n",
-    "    x+=int(compas[i]['edad'])/len(nombres)\n",
-    "print(x)"
+    "for i in compas.keys():\n",
+    "    x+=int(compas[i]['edad'])/len(compas.keys())\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 45,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'colegio1'}\n"
+      "30.66666666666666\n"
      ]
     }
    ],
+   "source": [
+    "#Ejemplo\n",
+    "print(x)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "* Se crea un codigo para una  mostrar todas las instituciones del diccionario(sin repetición)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 53,
+   "metadata": {},
+   "outputs": [],
    "source": [
     "\n",
     "#Instituciones\n",
+    "#Se inicializa una lista que se llenara con los elementos de las instituciones\n",
     "s=[]\n",
-    "for i in nombres:\n",
+    "# Se crea un loop que toma las llaves del diccionario y va añadiendo a s los nombres de las instituciones\n",
+    "for i in compas.keys():\n",
     "    s.append(compas[i]['institucion'])\n",
-    "print(set(s))"
+    "#Trasnforma a s en un conjunto para eliminar los elementos repetidos\n",
+    "s=set(s)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 54,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'Universidad Nacional de Colombia', 'Universidad Industrial de Santander', 'Universidad Central de Venezuela', 'Universidad Antonio de Nariño', 'Universidad Nacional Mayor de San Marcos'}\n"
+     ]
+    }
+   ],
+   "source": [
+    "#Ejemplo\n",
+    "print(s)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 55,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[NbConvertApp] Converting notebook Ejercicio3.ipynb to html\n",
+      "[NbConvertApp] Writing 598110 bytes to Ejercicio3.html\n"
+     ]
+    }
+   ],
+   "source": [
+    "!jupyter nbconvert --to html Ejercicio3.ipynb"
+   ]
   }
  ],
  "metadata": {
@@ -135,6 +413,18 @@
    "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,
-- 
GitLab