diff --git a/ejercicio2.ipynb b/ejercicio2.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..a1373db1c95f0f6b9360cc72b65fd614028b05f0
--- /dev/null
+++ b/ejercicio2.ipynb
@@ -0,0 +1,236 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Juan David Hernández ejercicio2 clase 02"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 1.Realizar un programa que reciba un número, luego identifique si este número es natural o no. Si es natural entonces el programa mostrará los coeficientes del triángulo de Pascal asociados a la fila correspondiente al número ingresado"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Primero importamos la librería math que contiene la función factorial la cual se va a utilizar en el desarrollo del problema"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Por el teorema del binomio de Newton, sabemos que los coeficientes del triángulo de Pascal corresponden a los mismos del polinomio $$ (x+y)^n $$. Los cuales vienen dados por $a_i=\\begin{pmatrix}n\\\\i\\end{pmatrix}=\\frac{n!}{i!(n-i)!}$. Por lo tanto es útil definir la función combinación entre dos enteros para este problema"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def combinado(entero1,entero2):\n",
+    "    combinacion=math.factorial(entero1)/(math.factorial(entero2)*math.factorial(entero1-entero2))\n",
+    "    return combinacion"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Ahora que tenemos la función combinación definida, creamos una función que nos muestre en una lista la combinación entre n e i, donde i va de 0 hasta n. Esta lista tendrá justamente los coeficientes de la n-ésima fila del triángulo de Pascal."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def filapascal(n):\n",
+    "    i=0\n",
+    "    a=[]\n",
+    "    while i<=n:\n",
+    "        a.append(combinado(n,i))\n",
+    "        i+=1\n",
+    "    return a"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Necesitamos también que nuestro programa identifique si el número ingresado es o no natural para poder ejecutarse. Con la función de .is_integer() sabemos si el número es un entero y si además es positivo, entonces es natural y sirve para calcular la fila del triángulo de Pascal."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def printfila(n):\n",
+    "    if (float(n).is_integer())==True and n>=0:\n",
+    "        print(\"La fila\", n, \"del triángulo de Pascal es:\",filapascal(n))\n",
+    "    else:\n",
+    "        print(\"El número que ingresó no pertenece a los naturales, ingrese otro número\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Ejemplo1 Calcular los números de la sexta fila del triángulo de Pascal."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "introduzca un número natural: 6\n"
+     ]
+    }
+   ],
+   "source": [
+    "x = float(input(\"introduzca un número natural: \"))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "La fila 6.0 del triángulo de Pascal es: [1.0, 6.0, 15.0, 20.0, 15.0, 6.0, 1.0]\n"
+     ]
+    }
+   ],
+   "source": [
+    "printfila(x)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Ejemplo 2 Cuando el número es un racional negativo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "El número que ingresó no pertenece a los naturales, ingrese otro número\n"
+     ]
+    }
+   ],
+   "source": [
+    "printfila(-8.5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2.Ahora queremos que se pueda introducir un número variable de filas a calcular y que los coeficientes queden dentro de una lista."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Para esto definimos una función, con la misma estructura del caso anterior, pero, cuyo argumento esté precedido por un *. Además esta función va añadiendo los coeficientes de cada fila en una nueva lista."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def printfilas(*numeros):\n",
+    "    filas=[]\n",
+    "    for n in numeros:\n",
+    "        if (float(n).is_integer())==True and n>=0:\n",
+    "            filas.append(filapascal(n))\n",
+    "        else:\n",
+    "            print(\"El número\",n, \"no pertenece a los naturales, ingrese otro número\")\n",
+    "    print (filas)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Ejemplo: Calcular los coeficientes de las filas (-1,8,3.5,4,5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "El número -1 no pertenece a los naturales, ingrese otro número\n",
+      "El número 3.5 no pertenece a los naturales, ingrese otro número\n",
+      "[[1.0, 8.0, 28.0, 56.0, 70.0, 56.0, 28.0, 8.0, 1.0], [1.0, 4.0, 6.0, 4.0, 1.0], [1.0, 5.0, 10.0, 10.0, 5.0, 1.0]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "printfilas(-1,8,3.5,4,5)"
+   ]
+  }
+ ],
+ "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
+}