diff --git a/Solucion Tarea Notebooks/ejercicio1.ipynb b/Solucion Tarea Notebooks/ejercicio1.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a75efd8112f881a07e87f71855e613bdb4f49195 --- /dev/null +++ b/Solucion Tarea Notebooks/ejercicio1.ipynb @@ -0,0 +1,129 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Lista de Palabras\n", + "\n", + "Mi nombre es Lorena Bucurú RodrÃguez, el problema a resolver es el siguiente:\n", + "\n", + "Escriba 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,\n", + "después de ordenarlas alfabéticamente.\n", + "\n", + "<strong>Ejemplo de entrada:</strong> naranja-avión-melodÃa-tupla-avión<br>\n", + "<strong>Salida esperada:</strong> avión-melodÃa-naranja-tupla\n", + "\n", + "### Solución:\n", + "\n", + "Para resolver este problema, pensé en los siguientes pasos:\n", + "\n", + "1. usar funciones como <em>split()</em>, la cual me permitirá separar la lista, ya que las palabras están separadas por guiones.\n", + "2. Guardaré esta lista como un nueva variable y luego la convertire en un conjunto usando <em>set(nombre de la lista)</em>.\n", + "3. Usare la función <em>sorted(Nombre de la lista)</em> para ordenar el conjunto alfabéticamente.\n", + "4. Finalmente mostraré el conjunto en pantalla." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Paso 1: Usar <em>split()</em>" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['naranja', 'avión', 'melodÃa', 'tupla', 'avión', 'carro', 'perro', 'xilofono', 'perro', 'año']\n" + ] + } + ], + "source": [ + "list = \"naranja-avión-melodÃa-tupla-avión-carro-perro-xilofono-perro-año\"\n", + "\n", + "SplitList = list.split(\"-\") # Se hace una nueva lista, las palabras entre \"-\" seran una entrada.\n", + "\n", + "print(SplitList)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Paso 2: Convertir en conjunto" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'carro', 'avión', 'melodÃa', 'año', 'xilofono', 'naranja', 'tupla', 'perro'}\n" + ] + } + ], + "source": [ + "ListSet = set(SplitList)\n", + "\n", + "print(ListSet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Paso 3: Usar <em>sorted(Nombre de la lista)</em> " + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sorted list: ['avión', 'año', 'carro', 'melodÃa', 'naranja', 'perro', 'tupla', 'xilofono']\n" + ] + } + ], + "source": [ + "OrdenedSet = sorted(ListSet)\n", + "\n", + "print(\"Sorted list: \",OrdenedSet)" + ] + } + ], + "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/Solucion Tarea Notebooks/ejercicio2.ipynb b/Solucion Tarea Notebooks/ejercicio2.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..99b856587b29e5d25a68b5dcdfc6bf4bd8a7abd5 --- /dev/null +++ b/Solucion Tarea Notebooks/ejercicio2.ipynb @@ -0,0 +1,185 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Triangulo de Pascal\n", + "\n", + "Mi nombre es Lorena Bucurú RodrÃguez, el problema a resolver es el siguiente:\n", + "\n", + "1. Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso contrario.\n", + "2. Modifique la rutina anterior para que 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", + "\n", + "<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tri%C3%A1ngulo_de_Pascal.svg/846px-Tri%C3%A1ngulo_de_Pascal.svg.png\" alt=\"drawing\" width=\"200\"/>\n", + "\n", + "### Solución 1:\n", + "\n", + "Para resolver este problema, pensé en usar la cobinatoria para hallar los valores del triangulo. <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPsAAADBCAMAAAA+TTZfAAAABlBMVEX///8AAABVwtN+AAADvklEQVR4nO2bi3LDIAwEo///6U7b2GAgjHUogKy7mbYOkwU2fmFCXy+GmRmpNsLk11hEjs1IkewnmPypLOlllAR2T8bvrUDypXukHU/3yO7H/f0V0b1T8NzQvVfw3NC9V/Dc0L1X8NzQvVfw3HBcF3k8T/esIEToTvesIEQiz1WeyvF2eyUbyv1qG0v94htNPfR30AzDMIz/DNzGvA92s3VEWgfvy5D++w7tQEmkS/lCWuNwsfYoH9i9dFZMT1ylHc5rVPsbdXe44+ke2h35ys39ZN7AV63uJ/Po3iu4i9LdU+jeK7iL0t1T6N4ruIu6dcfHde7HtNDyguI7+YDukfc73VXgLqE73f+2As1Vjsy+SE46VB8ZncnHF14yYCDNTU8ZMABmdzfLgIHbOVqGYRjmMcFvYytI02Qjb2VHVpCmkeOXuiMrSNPIdUvRkRWkbQK7l88q92cZVpC2kXILMJhH2qa61+gNJpK2yZpXTi+tIG1zTiaqp9ZWkLapmkWuWNNI29C9V7ATaRu69wp2Im1D917BTqRt6N4r2Im0TRpjaftRAcC4TkvaJg0qwacxQd2RNm0z7I7vd6BN29Cd7rp+GLh7v9YNuOtJ25Tu+hnH86/6DqFv0zhH8/pTb5BcPm1TNax2n0saRz6+2JE0jjQ3dyWNg19vV5AMwzAMc4mv25jp890xgNbXt4o0W4MlZ43a+laREPixG9cOeSC14I3a8H7MJU2eb1M30OmJFaQa7PdD/VmuJS12PN3H+uHcXfQza+tIAOz1o1OwM0l3NDsY0B0h6Y5mBwO6IyTd0exgsNodHp1lVUxr03ZcJ+cmYFAUfL1NAPxKP14D+32gzcjumxzzK9x3Od9H3OHr61eOeWTW7f1nJqntbK+65K4lkXMvEWibarDbD/2yplHyXEulJe3WYMnHF7uTw+qNy64T0kC9ccV2QZqoMwzDMP7j8zamJltgdk8EhxIuyBZ4eeyFhpAuyBaYPg78Uc0B2QRdGdi6l2cB9N9O+5NNMDvylY+9rsgmeBTq5wpckU2wutepjz8XZBN0ZfA99+pdt6vbn2yCrgzojpB0LwpcGdAdIeleFLgyoDtCdt1dLSfSk71xnVwKlf2o679F4m3qyfQ+sXTH9/tAm7C7mO73Ne7oMf8Ad/R8F9vzfcQdvr6Cx/xVc6n7vCPm0GzN25ybMxdECd6mlmyD6RMp33SzvvnLiZD1RMV51sT17j7INiidtyjq251sg9UFBKlvf7INtj4FZX0eSLxJhmEYhmGc5AcD3AXPj289MwAAAABJRU5ErkJggg==\" alt=\"drawing\" width=\"200\"/>\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Los numeros de la fila 8 en el triangulo de Pascal son: [1, 8, 28, 56, 70, 56, 28, 8, 1]\n" + ] + } + ], + "source": [ + "# Se recibe un numero n para saber los valores\n", + "# del triangulo de Pascal en esa fila.\n", + "# Las filas se empiezan a contar desde cero.\n", + "\n", + "fila = 8\n", + "\n", + "def Factorial(a):\n", + " \"\"\"Calculo del factorial de un numero.\"\"\"\n", + " if a == 0 or a == 1:\n", + " return 1\n", + " else:\n", + " a *= Factorial(a - 1)\n", + " return a\n", + "\n", + "\n", + "def Combinatoria(n, p):\n", + " \"\"\"Calculo de la combinatoria. (n,p)\"\"\"\n", + " comb = Factorial(n) / (Factorial(p) * Factorial(n - p))\n", + " return comb\n", + "\n", + "\n", + "# Se genera una lista vacÃa para llenarla con lo valores del triagulo de Pascal.\n", + "List = []\n", + "\n", + "# se verifica que \"fila\" sea entero.\n", + "if isinstance(fila, int) == True:\n", + " \n", + " # Se llenan la lista con los datos y se imprime.\n", + " for i in range(fila + 1):\n", + " List.append(int(Combinatoria(fila, i)))\n", + " \n", + " # Los datos son mostrados en pantalla\n", + " print(f\"Los numeros de la fila {fila} en el triangulo de Pascal son: \",List)\n", + "\n", + "else:\n", + " #Se muestra el mensaje de error.\n", + " print(\"Error, el número no es entero, vuelva a intentar.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Solución 2:\n", + "\n", + "Para resolver este problema, pensé en usar la cobinatoria para hallar los valores del triangulo y convertir los datos de entrada en una lista." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Los numeros de la filas [5, 3, 8, 4, 2] en el triangulo de Pascal son: [[1, 5, 10, 10, 5, 1], [1, 3, 3, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 4, 6, 4, 1], [1, 2, 1]], respectivamente.\n" + ] + } + ], + "source": [ + "# Se recibe una lista con n1, n2, .. para saber los valores\n", + "# del triangulo de Pascal en esas filas.\n", + "# Las filas se empiezan a contar desde cero.\n", + "\n", + "filas = [5, 3, 8, 4, 2]\n", + "\n", + "def Factorial(a):\n", + " \"\"\"Calculo del factorial de un numero.\"\"\"\n", + " if a == 0 or a == 1:\n", + " return 1\n", + " else:\n", + " a *= Factorial(a - 1)\n", + " return a\n", + "\n", + "\n", + "def Combinatoria(n, p):\n", + " \"\"\"Calculo de la combinatoria. (n,p)\"\"\"\n", + " comb = Factorial(n) / (Factorial(p) * Factorial(n - p))\n", + " return comb\n", + "\n", + "# Se genera la lista que contendrá todos los valores\n", + "List = []\n", + "\n", + "# Se va corriendo por la lista de entrada para verificar si son enteros todos.\n", + "for j in filas:\n", + " \n", + " # Se verifica que todos sean enteros\n", + " if isinstance(j, int) == True:\n", + " \n", + " # Creamos una lista que iremos llenando\n", + " Lista_j = []\n", + " \n", + " # Se llenan la lista con los datos y se imprime. \n", + " for i in range(j + 1):\n", + " Lista_j.append(int(Combinatoria(j, i)))\n", + " \n", + " # Se añaden las listas de los valores del triangulo de Pascal a la lista de listas.\n", + " List.append(Lista_j)\n", + "\n", + "# Se imprime la lista de listas.\n", + "print(f\"Los numeros de la filas {filas} en el triangulo de Pascal son: {List}, respectivamente.\")\n", + "\n", + "# Generamos una variable que servirá para encontrar la entrada en la que no haya un número entero.\n", + "m = 0\n", + "\n", + "# Se va corriendo por la lista de entrada para verificar si alguno es falso.\n", + "for j in filas:\n", + " \n", + " # Contador\n", + " m += 1\n", + " \n", + " # Verificación\n", + " if isinstance(j, int) == False:\n", + " \n", + " #Se muestra el mensaje de error.\n", + " print(f\"Error, la variable {j} no es entero en la entrada {m} de la lista ingresada, vuelva a intentar.\")\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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/Solucion Tarea Notebooks/ejercicio3.ipynb b/Solucion Tarea Notebooks/ejercicio3.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..840232d6fcdf98d33cd67c2576b2e42db2d97aa6 --- /dev/null +++ b/Solucion Tarea Notebooks/ejercicio3.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Amigos congueros\n", + "\n", + "Mi nombre es Lorena Bucurú RodrÃguez, el problema a resolver es el siguiente:\n", + "\n", + "1. Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte de LaConga, uno del curso de datos y otro de afuera, y consulte su nombre completo, su nombre de usuario en mattermost, edad, pais de origen, ciudad donde residen, su especialidad cientÃfica, nombre del instituto en que estudian/laboran, y un hobbie o afición.\n", + "2. Cree un diccionario llamado “compasâ€, donde la llave sea el nombre de usuario en mattermost, y 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â€.\n", + "3. Cree una función que reciba como entrada el diccionario y un paÃs de origen, y retorne las informaciones completas de todas las personas de ese paÃs, tabuladas en una forma fácil de entender. -Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él, y una forma de mostrar todas las instituciones (sin repetición)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(9):\n", + " print(f\"\\n Usted es el estudiante {i}\")\n", + " estudiante_i = dict(nombre_completo = (input(\"Escriba su nombre completo: \").lower()).replace(\" \",\"-\"),\n", + " usuario_mattermost = input('Escriba su usuario de mattermost: ').lower(),\n", + " edad = int(input(\"Digite su edad: \")),\n", + " pais_origen = input(\"¿CuÃ¥l es su ciudad de origen: \").lower(),\n", + " ciudad_residencia = input(\"¿Cuál es su ciudad de residencia?: \").lower(),\n", + " especialidad_cientifica = (input(\"¿Cuál es su especialidad cientÃfica: \").lower()).replace(\" \",\"-\"),\n", + " instituto = (input(\"¿En qué istituto trabaja o labora?: \").lower()).replace(\" \",\"-\"),\n", + " hobbie = (input(\"Un hobbie o afición: \").lower()).replace(\" \",\"-\")\n", + " )\n", + "\n", + "print(estudiante[\"nombre\"])" + ] + } + ], + "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 +}