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,