diff --git a/Ejercicio1.ipynb b/Ejercicio1.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e9f7baf2ab50bb1c436d2ab2de602eb54ca23cf6
--- /dev/null
+++ b/Ejercicio1.ipynb
@@ -0,0 +1,63 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ingrese lista de palabras: avion-jose-martin-martin-lechuga-covid\n"
+     ]
+    }
+   ],
+   "source": [
+    "lista=input(\"ingrese lista de palabras: \")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['avion', 'jose', 'martin', 'martin', 'lechuga', 'covid']\n",
+      "avion-covid-lechuga-martin-jose\n"
+     ]
+    }
+   ],
+   "source": [
+    "m=lista.split('-')\n",
+    "print(m)\n",
+    "a='-'.join(list(set(sorted(m))))\n",
+    "print(a)"
+   ]
+  }
+ ],
+ "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 0000000000000000000000000000000000000000..f8514ec8cc4575853775d86140229fd367f639e5
--- /dev/null
+++ b/ejercicio2.ipynb
@@ -0,0 +1,243 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# TRIANGULO DE PASCAL\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Escriba una rutina en python que reciba com entrada un número entero, n, e imprima los números de la n-esima 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."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    " Al poner cada fila del triangulo de pascal en una matriz se obtine que el termino 0,0 de la matriz corresponde a la primera fila del triangulo de pascal, el termino 1,1 tambien tendria el número 1 y asi sucesicamente para los i=j de la matriz, seguidamente todos los terminos de la primera columna tienen termino igual a 1, el esquema se muestra a continuación"
+   ]
+  },
+  {
+   "attachments": {
+    "TPascal2-3.png": {
+     "image/png": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![TPascal2-3.png](attachment:TPascal2-3.png)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### analizando en este caso los indices i corresponden a las filas y  los indices j a las columnas\n",
+    "Primero : para todo i y j = o --> elemento de la matriz igual a 1\n",
+    "\n",
+    "segundo  : para i == j --> elementos de la matriz igual a 1\n",
+    "\n",
+    "tercero : para j < i  --> elemento de la matriz es igual a [i-1] [j] + [i-1][j-1], por ejemplo el termino  [3][1]=[2][1]+[2][0]=2+1=0 correspondiendo al termino del triangulo de pascal"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Definimos una funcion con los pasos mencionados anteriormente"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def triangulo_pascal(num): # num es el digito ingresado por el usuario \n",
+    "    a= [[] for i in range(num)] #creamos una matriz m, con columnas vacias \n",
+    "    for i in range(num):\n",
+    "        for j in range(i+1):\n",
+    "            if(j<i): \n",
+    "                if (j==0): # Segundo\n",
+    "                    a[i].append(1)\n",
+    "                else:\n",
+    "                    a[i].append(a[i-1][j]+a[i-1][j-1]) # TERCERO \n",
+    "            elif (j==i):\n",
+    "                a[i].append(1) # primero \n",
+    "    print(a[num-1]) # hacemos que imprima la penultima columna de la matriz \n",
+    "    \n",
+    "            "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Evaluamos : para num = 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 4, 6, 4, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "triangulo_pascal(5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "segun el problema nos piden que ingresemos un digito y que evaluemos si es entero o no y dar un mensaje al usuario si este no lo es."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ingrese un numero entero positivo mayor que cero porfavor:\t6\n"
+     ]
+    }
+   ],
+   "source": [
+    "valor = True\n",
+    "while valor==True :\n",
+    "    try:\n",
+    "        num = int(input('ingrese un numero entero positivo mayor que cero porfavor:\\t'))\n",
+    "        if (type(num)==int and num>0):  #evalua si el digito ingresado es entero, si lo es rompe el while\n",
+    "            valor = False\n",
+    "    except:\n",
+    "        print('por favor,intente otra vez con un numero entero') #mensaje mostrado por no ingresar un entero"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### mostramos el triangulo de pascal para el numero ingresado"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 5, 10, 10, 5, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "triangulo_pascal(num)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 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 n1del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y asísucesivamente."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ingrese una lista de enteros seguidos por una coma:\t1,2,3,4,10\n"
+     ]
+    }
+   ],
+   "source": [
+    "valor = True\n",
+    "while valor==True :\n",
+    "    try:\n",
+    "        num = input('ingrese una lista de enteros seguidos por una coma:\\t')\n",
+    "        new_list = num.split(',')\n",
+    "        new_num=[int(x) for x in new_list] #pasasamos los valores str de la lista a int \n",
+    "        for i in range(len(new_num)):\n",
+    "            if (type(new_num[i])== int):   #investigamos si sus componentes son enteros\n",
+    "                valor= False\n",
+    "            else:\n",
+    "                valor = True  #en caso de que uno no sea entero rompe el for y pasamos al except\n",
+    "                break\n",
+    "    except:\n",
+    "        print('por favor,intente otra vez con una lista de enteros y seguido por comas') #mensaje mostrado por no ingresar un entero"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### imprimimos las filas solicitadas del triangulo de pascal"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1]\n",
+      "[1, 1]\n",
+      "[1, 2, 1]\n",
+      "[1, 3, 3, 1]\n",
+      "[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "lista = [triangulo_pascal(i) for i in new_num] # creamos una lista de comprencion para llamar a "
+   ]
+  }
+ ],
+ "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 0000000000000000000000000000000000000000..7fec51502cbc3200b3d0ffc6bbba1fe85e197f3d
--- /dev/null
+++ b/ejercicio3.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 4
+}