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