diff --git a/ejercicio1.ipynb b/ejercicio1.ipynb index c76d39436a64605f52c2d53c3b5b39203a5fc7ca..b5a5d8ebc99e339ef55b05d28fa90ec2b9fad5cc 100644 --- a/ejercicio1.ipynb +++ b/ejercicio1.ipynb @@ -23,33 +23,30 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "naranja-avión-melodÃa-tupla-avión\n", "avión-melodÃa-naranja-tupla\n" ] } ], "source": [ - "txt=input()\n", + "#Se ingresa el ejemplo en este caso\n", + "txt='naranja-avión-melodÃa-tupla-avión'\n", + "#Se convierte en una lista utilizando la función split a partir del caracter '-'\n", "txt=txt.split('-')\n", + "#Se utiliza la función sorted() para organizarlos alfabeticamente\n", "txt=sorted(txt)\n", - "prev=''\n", - "ret=''\n", - "for i in range(len(txt)):\n", - " if txt[i]==prev:\n", - " continue\n", - " else:\n", - " ret+=txt[i]\n", - " if i<len(txt)-1:\n", - " ret+='-'\n", - " prev=txt[i]\n", - "print(ret)" + "#Utilizando la función fromkeys() que genera un diccionario con las palabras de la lista como llaves\n", + "#se obtienen los elementos sin repetir y se extraen nuevamente\n", + "txt=list(dict.fromkeys(txt))\n", + "#Por último se unen utilizando la función join y se imprimen\n", + "txt='-'.join(txt)\n", + "print(txt)" ] } ], diff --git a/ejercicio2.ipynb b/ejercicio2.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f79b3a91173cbfa509df1660eab7bf8cf3560a27 --- /dev/null +++ b/ejercicio2.ipynb @@ -0,0 +1,82 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nombre: Juan Manuel Moreno Pérez\n", + "# Usuario: morenoj" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "• Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los\n", + "números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número\n", + "n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso\n", + "contrario.\n", + "\n", + "• Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,...\n", + "y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1\n", + "del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y asÃ\n", + "sucesivamente." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 3, 3, 1]\n", + "[1, 2, 1]\n", + "[1]\n", + "9.5 no es un entero\n" + ] + } + ], + "source": [ + "#Se importa la función comb del módulo math que resulta útil en el cálculo de los coeficientes del triángulo de pascal\n", + "from math import comb\n", + "#Se entrega el argumento como una lista\n", + "n=[3,2,0,9.5]\n", + "#Se itera sobre esta lista\n", + "for x in n:\n", + " #Se utiliza la función isinstance para verificar el tipo de elemento y enviar un mensaje de no ser un entero\n", + " if not isinstance(x,int):\n", + " print('{} no es un entero'.format(x))\n", + " else:\n", + " pascal=[]\n", + " #Se define una corta rutina para calcular los coeficientes del triángulo de Pascal\n", + " for i in range(x+1):\n", + " pascal+=[comb(x,x-i)]\n", + " print(pascal)" + ] + } + ], + "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.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ejercicio3.ipynb b/ejercicio3.ipynb index f28703b31f35cc83cdbe0177971f6e263ef0003c..e117482711176e81adda3579d7d0898bfa7827c6 100644 --- a/ejercicio3.ipynb +++ b/ejercicio3.ipynb @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -126,23 +126,33 @@ "}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Se escribe una función que reciba las 2 cosas que se solicitan, se itera sobre las llaves el diccionario y posteriormente se verifica que el paÃs de origen sea el deseado en caso de serlo se procede a imprimir toda la información utilizando la caracterÃstica format de la función print." + ] + }, { "cell_type": "code", - "execution_count": 135, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ + "\n", "def informacion(compas,pais):\n", + " universidades=[]\n", " for key in list(compas.keys()):\n", " if compas[key]['PaÃs_Origen']==pais:\n", " print('Nombres: {0[Nombres]:<15} Apellidos: {0[Apellidos]:<20} Edad: {0[Edad]:<5} PaÃs de origen: {0[PaÃs_Origen]:<15}'.format(compas[key]))\n", " print('Ciudad de residencia: {0[Ciudad_Residencia]:<20} Especialidad CientÃfica: {0[Especialidad_CientÃfica]:<20}'.format(compas[key]))\n", - " print('Instituto : {0[Instituto]:<40} Hobbies: {0[Hobbies]:<15}\\n'.format(compas[key]))" + " print('Instituto : {0[Instituto]:<40} Hobbies: {0[Hobbies]:<15}\\n'.format(compas[key]))\n", + " universidades+=[compas[key]['Instituto']]\n" ] }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -176,6 +186,83 @@ "informacion(compas,'Colombia')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Se calcula la edad promedio sumando todas las edades y diviendolo sobre el largo del diccionario, se itera sobre las personas de la misma forma que en la anterior función. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def edad_promedio(compas):\n", + " age=0\n", + " for key in list(compas.keys()):\n", + " age+=compas[key]['Edad']\n", + " age=age/len(list(compas.keys()))\n", + " print(age)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "25.8\n" + ] + } + ], + "source": [ + "edad_promedio(compas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Se extrae la lista de universidades iterando como se ha venido realizando y replicando el procedimiento para eliminar duplicados del punto uno se imprimen las universidades una sola vez." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def universidad(compas):\n", + " universidades=[]\n", + " for key in list(compas.keys()):\n", + " universidades+=[compas[key]['Instituto']]\n", + " universidades=sorted(universidades)\n", + " universidades=list(dict.fromkeys(universidades))\n", + " print(universidades)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['LAPP-Laboratoire d´Annecy de Physique des Particules', 'Universidad Central de Venezuela', 'Universidad Nacional Mayor de San Marcos', 'Universidad Nacional de Colombia']\n" + ] + } + ], + "source": [ + "universidad(compas)" + ] + }, { "cell_type": "code", "execution_count": null,