From 0f0c3a46de78a05b7994951ef4c0a03dfc0e4c03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Horacio=20Ram=C3=ADrez=20Escobar?=
 <elchechere2000@hotmail.com>
Date: Tue, 29 Aug 2023 19:52:31 -0500
Subject: [PATCH 1/5] Saving exercises

---
 "M02_introprogramaci\303\263n/Practica.py"    |  13 +-
 .../Prep_Course_Homework_03.ipynb             | 449 ++++++++++++++----
 M04_flujosdecontrol/chre.py                   |   2 +
 .../Prep_Course_Homework_05-Resuelto.ipynb    |   2 +-
 .../Prep_Course_Homework_06-Resuelto.py       |   3 +-
 .../Prep_Course_Homework_06.ipynb             |   2 +-
 .../__pycache__/checkpoint.cpython-311.pyc"   | Bin 0 -> 2351 bytes
 "Simulaci\303\263n Challenge/checkpoint.py"   |  13 +-
 "Simulaci\303\263n Challenge/chre.ipynb"      |  80 ++++
 resultado_test.csv                            |   2 +
 10 files changed, 454 insertions(+), 112 deletions(-)
 create mode 100644 M04_flujosdecontrol/chre.py
 create mode 100644 "Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc"
 create mode 100644 "Simulaci\303\263n Challenge/chre.ipynb"
 create mode 100644 resultado_test.csv

diff --git "a/M02_introprogramaci\303\263n/Practica.py" "b/M02_introprogramaci\303\263n/Practica.py"
index fd1be0fc9..501dc44d0 100644
--- "a/M02_introprogramaci\303\263n/Practica.py"
+++ "b/M02_introprogramaci\303\263n/Practica.py"
@@ -1,10 +1,3 @@
-
-# Este es un archivo de prueba, sin actividades =) .
-
-# A partir del próximo módulo: M03_variablesydatos vas a tener actividades para realizar.
-
-print('Hola Mundo!')
-a = 20
-while a > 0:
-    print(a)
-    a -= 1
+a = {1,2}
+b = {2,3}
+print(a - b)
\ No newline at end of file
diff --git a/M03_variablesydatos/Prep_Course_Homework_03.ipynb b/M03_variablesydatos/Prep_Course_Homework_03.ipynb
index b4d68b08b..830b6b7b0 100644
--- a/M03_variablesydatos/Prep_Course_Homework_03.ipynb
+++ b/M03_variablesydatos/Prep_Course_Homework_03.ipynb
@@ -18,10 +18,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "15\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 15\n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -33,10 +44,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'float'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(type(8.5))"
+   ]
   },
   {
    "attachments": {},
@@ -48,10 +69,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "int"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "type(a) "
+   ]
   },
   {
    "attachments": {},
@@ -63,10 +97,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Carlos Ramírez\n"
+     ]
+    }
+   ],
+   "source": [
+    "mi_nombre = 'Carlos Ramírez'\n",
+    "print (mi_nombre)"
+   ]
   },
   {
    "attachments": {},
@@ -78,10 +123,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 23,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "n_complejo = 5 + 5j"
+   ]
   },
   {
    "attachments": {},
@@ -93,10 +140,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'complex'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(type(n_complejo))"
+   ]
   },
   {
    "attachments": {},
@@ -111,7 +168,9 @@
    "execution_count": null,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "pi = 3.1415"
+   ]
   },
   {
    "attachments": {},
@@ -123,10 +182,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "c= True\n",
+    "b= 'True'"
+   ]
   },
   {
    "attachments": {},
@@ -136,13 +198,6 @@
     "9) Imprimir el tipo de dato correspondientes a las variables creadas en el punto 8"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
   {
    "attachments": {},
    "cell_type": "markdown",
@@ -153,10 +208,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'bool'>\n",
+      "<class 'str'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(type(c))\n",
+    "print(type(b))"
+   ]
   },
   {
    "attachments": {},
@@ -168,10 +235,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(13+11j)\n"
+     ]
+    }
+   ],
+   "source": [
+    "num_compl_1= 5 + 8j\n",
+    "num_compl_2= 8 + 3j\n",
+    "\n",
+    "print(num_compl_1 + num_compl_2)\n"
+   ]
   },
   {
    "attachments": {},
@@ -183,10 +263,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(9+4j)\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 6\n",
+    "num_compl_2= 3 + 4j\n",
+    "print(a + num_compl_2)"
+   ]
   },
   {
    "attachments": {},
@@ -198,10 +290,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "114\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(38*3)"
+   ]
   },
   {
    "attachments": {},
@@ -213,10 +315,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "256\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(2**8)"
+   ]
   },
   {
    "attachments": {},
@@ -228,10 +340,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "6.75\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 27 / 4\n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -243,10 +366,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "6\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 27 // 4\n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -258,10 +392,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "3\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 27 % 4\n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -273,10 +418,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "27\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 3 + 4*6 \n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -288,10 +444,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Hello World\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 'Hello '\n",
+    "b= 'World'\n",
+    "\n",
+    "print(a + b)"
+   ]
   },
   {
    "attachments": {},
@@ -303,10 +472,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "False"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "\"2\" == 2   # uno es tipo string y el otro es int, por eso no son iguales"
+   ]
   },
   {
    "attachments": {},
@@ -318,10 +500,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "True"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# \"2\" == str(2)\n",
+    "int('2') == 2"
+   ]
   },
   {
    "attachments": {},
@@ -333,10 +529,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "3.8\n",
+      "<class 'float'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= float('3.8')     # Para que funcione debe usarse un punto en vez de la coma\n",
+    "\n",
+    "print(a)\n",
+    "print(type(a))"
+   ]
   },
   {
    "attachments": {},
@@ -348,10 +558,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2\n"
+     ]
+    }
+   ],
+   "source": [
+    "a=3\n",
+    "\n",
+    "a -= 1\n",
+    "\n",
+    "print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -363,10 +587,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "4"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "1<<2 # Binario es otro tipo de datos. en este ejemplo se mueve el 1 dos posiciones a la izq, 0100 que corresponde al #4 en binario"
+   ]
   },
   {
    "attachments": {},
@@ -381,7 +618,9 @@
    "execution_count": null,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "# no está permitido por es tipo de datos diferentes. si fueran el mismo tipo de datos si se podria y darian diferentes resultados"
+   ]
   },
   {
    "attachments": {},
@@ -393,10 +632,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "yo tengo más de 18 años\n"
+     ]
+    }
+   ],
+   "source": [
+    "edad= 18\n",
+    "texto1= 'yo tengo más de '\n",
+    "texto2= ' años'\n",
+    "\n",
+    "print(texto1 + str(edad) + texto2)"
+   ]
   }
  ],
  "metadata": {
@@ -418,7 +671,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.11"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M04_flujosdecontrol/chre.py b/M04_flujosdecontrol/chre.py
new file mode 100644
index 000000000..ad5b130fd
--- /dev/null
+++ b/M04_flujosdecontrol/chre.py
@@ -0,0 +1,2 @@
+num = input('escribe un número entero => ')
+print('El número es: ' + str(num))
\ No newline at end of file
diff --git a/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb b/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
index 754d5434d..c48b5610b 100644
--- a/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
+++ b/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
@@ -629,7 +629,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "23) Crear un diccionario utilizando la lista crada en el punto 1, asignandole la clave \"ciudad\". Agregar tambien otras claves, como puede ser \"Pais\" y \"Continente\"."
+    "23) Crear un diccionario utilizando la lista creada en el punto 1, asignandole la clave \"ciudad\". Agregar tambien otras claves, como puede ser \"Pais\" y \"Continente\"."
    ]
   },
   {
diff --git a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
index ceb911aa4..1f00fac4c 100644
--- a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
+++ b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
@@ -20,7 +20,8 @@
 
 # In[3]:
 
-
+lista = []
+n = -15
 n = 0
 while (n < len(lista)):
     if (lista[n] % 2 == 0):
diff --git a/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb b/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
index 75d6c18b1..0133dde73 100644
--- a/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
+++ b/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
@@ -282,7 +282,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git "a/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc" "b/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc"
new file mode 100644
index 0000000000000000000000000000000000000000..7213b192db00028fa4e384186173af942742bd91
GIT binary patch
diff --git "a/Simulaci\303\263n Challenge/checkpoint.py" "b/Simulaci\303\263n Challenge/checkpoint.py"
index 71eb47fe4..976af8b32 100644
--- "a/Simulaci\303\263n Challenge/checkpoint.py"	
+++ "b/Simulaci\303\263n Challenge/checkpoint.py"	
@@ -12,7 +12,18 @@ def Factorial(numero):
         Factorial(-2) debe retornar nulo
     '''
     #Tu código aca:
-    return 'Funcion incompleta'
+    if type(numero) != int:
+        return None
+    if numero < 1:
+        return None
+    
+    factorial = 1
+
+    while (numero > 1):
+        factorial = factorial * numero
+        numero = numero -1
+
+    return factorial
 
 def EsPrimo(valor):
     '''
diff --git "a/Simulaci\303\263n Challenge/chre.ipynb" "b/Simulaci\303\263n Challenge/chre.ipynb"
new file mode 100644
index 000000000..a8c8c8919
--- /dev/null
+++ "b/Simulaci\303\263n Challenge/chre.ipynb"	
@@ -0,0 +1,80 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 55,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def Factorial(numero):\n",
+    "    '''\n",
+    "    Esta función devuelve el factorial del número pasado como parámetro.\n",
+    "    En caso de que no sea de tipo entero y/o sea menor que 1, debe retornar nulo.\n",
+    "    Recibe un argumento:\n",
+    "        numero: Será el número con el que se calcule el factorial\n",
+    "    Ej:\n",
+    "        Factorial(4) debe retornar 24\n",
+    "        Factorial(-2) debe retornar nulo\n",
+    "    '''\n",
+    "    #Tu código aca:\n",
+    "\n",
+    "    \n",
+    "    if type(numero) != int:\n",
+    "        return None\n",
+    "    if numero < 1:\n",
+    "        return None\n",
+    "        \n",
+    "    factorial = 1\n",
+    "\n",
+    "    while (numero > 1):\n",
+    "        factorial = factorial * numero\n",
+    "        numero = numero -1\n",
+    "        \n",
+    "    return factorial"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 58,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "24"
+      ]
+     },
+     "execution_count": 58,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "\n",
+    "Factorial(4)\n"
+   ]
+  }
+ ],
+ "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.11.3"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/resultado_test.csv b/resultado_test.csv
new file mode 100644
index 000000000..dd89c8d2b
--- /dev/null
+++ b/resultado_test.csv
@@ -0,0 +1,2 @@
+Total_Tests,Total_Fallas,Total_Errores,Total_Correctos
+9,3,3,3

From 47ec8716765ee5e4f96b3f56f5b842f0866bf76e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Horacio=20Ram=C3=ADrez=20Escobar?=
 <elchechere2000@hotmail.com>
Date: Tue, 29 Aug 2023 21:04:10 -0500
Subject: [PATCH 2/5] Tests done

---
 .../__pycache__/checkpoint.cpython-311.pyc"   | Bin 2351 -> 3335 bytes
 "Simulaci\303\263n Challenge/checkpoint.py"   |  28 +++++++-
 "Simulaci\303\263n Challenge/chre.ipynb"      |  68 +++++++++++-------
 resultado_test.csv                            |   2 +-
 4 files changed, 69 insertions(+), 29 deletions(-)

diff --git "a/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc" "b/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc"
index 7213b192db00028fa4e384186173af942742bd91..f2d8213c09c15fd7255bcde5db5bf9fa7de8afab 100644
GIT binary patch
diff --git "a/Simulaci\303\263n Challenge/checkpoint.py" "b/Simulaci\303\263n Challenge/checkpoint.py"
index 976af8b32..a94b6643a 100644
--- "a/Simulaci\303\263n Challenge/checkpoint.py"	
+++ "b/Simulaci\303\263n Challenge/checkpoint.py"	
@@ -36,8 +36,19 @@ def EsPrimo(valor):
         EsPrimo(7) debe retornar True
         EsPrimo(8) debe retornar False
     '''
-    #Tu código aca:
-    return 'Funcion incompleta'
+    if type(valor) != int:
+        return None
+    
+    Primo = True
+    
+    for i in range(2, valor):
+        if (valor % i) == 0:
+            Primo = False
+            break
+        i += 1
+
+    return Primo
+
     
 def ClaseAnimal(especie, color):
     '''
@@ -58,4 +69,15 @@ def ClaseAnimal(especie, color):
         a.CumpliAnios() -> debe devolver 3
     '''
     #Tu código aca:
-    return 'Funcion incompleta'
+    class Animal:
+        def __init__(self, especie, color):
+            self.edad = 0
+            self.especie = especie
+            self.color = color
+
+        def CumplirAnios(self):
+            self.edad += 1   # self.edad = self.edad + 1
+            return self.edad 
+
+
+    return Animal (especie, color)
\ No newline at end of file
diff --git "a/Simulaci\303\263n Challenge/chre.ipynb" "b/Simulaci\303\263n Challenge/chre.ipynb"
index a8c8c8919..72bf8eaff 100644
--- "a/Simulaci\303\263n Challenge/chre.ipynb"	
+++ "b/Simulaci\303\263n Challenge/chre.ipynb"	
@@ -2,56 +2,74 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 55,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [],
    "source": [
-    "def Factorial(numero):\n",
+    "def ClaseAnimal(especie, color):\n",
     "    '''\n",
-    "    Esta función devuelve el factorial del número pasado como parámetro.\n",
-    "    En caso de que no sea de tipo entero y/o sea menor que 1, debe retornar nulo.\n",
-    "    Recibe un argumento:\n",
-    "        numero: Será el número con el que se calcule el factorial\n",
+    "    Esta función devuelve un objeto instanciado de la clase Animal, \n",
+    "    la cual debe tener los siguientes atributos:\n",
+    "        Edad    (Un valor de tipo de dato entero, que debe inicializarse en cero)\n",
+    "        Especie (Un valor de tipo de dato string)\n",
+    "        Color   (Un valor de tipo de dato string)\n",
+    "    y debe tener el siguiente método:\n",
+    "        CumplirAnios  (este método debe sumar uno al atributo Edad y debe devolver ese valor)\n",
+    "    Recibe dos argumento:\n",
+    "        especie: Dato que se asignará al atributo Especie del objeto de la clase Animal\n",
+    "        color: Dato que se asignará al atributo Color del objeto de la clase Animal\n",
     "    Ej:\n",
-    "        Factorial(4) debe retornar 24\n",
-    "        Factorial(-2) debe retornar nulo\n",
+    "        a = ClaseAnimal('perro','blanco')\n",
+    "        a.CumplirAnios() -> debe devolver 1\n",
+    "        a.CumplirAnios() -> debe devolver 2\n",
+    "        a.CumplirAnios() -> debe devolver 3\n",
     "    '''\n",
     "    #Tu código aca:\n",
     "\n",
-    "    \n",
-    "    if type(numero) != int:\n",
-    "        return None\n",
-    "    if numero < 1:\n",
-    "        return None\n",
-    "        \n",
-    "    factorial = 1\n",
+    "    class Animal:\n",
+    "        def __init__(self, especie, color):\n",
+    "            self.edad = 0\n",
+    "            self.especie = especie\n",
+    "            self.color = color\n",
     "\n",
-    "    while (numero > 1):\n",
-    "        factorial = factorial * numero\n",
-    "        numero = numero -1\n",
-    "        \n",
-    "    return factorial"
+    "        def CumplirAnios(self):\n",
+    "            self.edad += 1   # self.edad = self.edad + 1\n",
+    "            return self.edad \n",
+    "\n",
+    "\n",
+    "    return Animal (especie, color)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "a = ClaseAnimal('perro','negro')\n",
+    "valor_test = a.CumplirAnios()\n",
+    "valor_test = a.CumplirAnios()\n",
+    "valor_test = a.CumplirAnios()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 58,
+   "execution_count": 22,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "24"
+       "<__main__.ClaseAnimal.<locals>.Animal at 0x2bc72dfa190>"
       ]
      },
-     "execution_count": 58,
+     "execution_count": 22,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "\n",
-    "Factorial(4)\n"
+    "ClaseAnimal('gato', 'blanco')"
    ]
   }
  ],
diff --git a/resultado_test.csv b/resultado_test.csv
index dd89c8d2b..b702ad75f 100644
--- a/resultado_test.csv
+++ b/resultado_test.csv
@@ -1,2 +1,2 @@
 Total_Tests,Total_Fallas,Total_Errores,Total_Correctos
-9,3,3,3
+9,0,0,9

From 1558bd964a56e9ed20f0327749b76c84c177f7b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Horacio=20Ram=C3=ADrez=20Escobar?=
 <elchechere2000@hotmail.com>
Date: Wed, 30 Aug 2023 10:34:58 -0500
Subject: [PATCH 3/5] progress

---
 .../Prep_Course_Homework_03.ipynb             |  43 ++-
 .../Prep_Course_Homework_04-Resuelto.ipynb    |   6 +-
 .../Prep_Course_Homework_04.ipynb             | 269 ++++++++++++++++--
 3 files changed, 280 insertions(+), 38 deletions(-)

diff --git a/M03_variablesydatos/Prep_Course_Homework_03.ipynb b/M03_variablesydatos/Prep_Course_Homework_03.ipynb
index 830b6b7b0..3ab607398 100644
--- a/M03_variablesydatos/Prep_Course_Homework_03.ipynb
+++ b/M03_variablesydatos/Prep_Course_Homework_03.ipynb
@@ -182,12 +182,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 4,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "False"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "c= True\n",
-    "b= 'True'"
+    "b= 'True'\n",
+    "\n",
+    "c == b"
    ]
   },
   {
@@ -208,7 +221,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -529,7 +542,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
@@ -539,13 +552,29 @@
       "3.8\n",
       "<class 'float'>\n"
      ]
+    },
+    {
+     "ename": "ValueError",
+     "evalue": "could not convert string to float: '3,8'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "Cell \u001b[1;32mIn[7], line 6\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[39mprint\u001b[39m(a)\n\u001b[0;32m      4\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39mtype\u001b[39m(a))\n\u001b[1;32m----> 6\u001b[0m b\u001b[39m=\u001b[39m \u001b[39mfloat\u001b[39;49m(\u001b[39m'\u001b[39;49m\u001b[39m3,8\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m      8\u001b[0m \u001b[39mprint\u001b[39m(b)\n\u001b[0;32m      9\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39mtype\u001b[39m(b))\n",
+      "\u001b[1;31mValueError\u001b[0m: could not convert string to float: '3,8'"
+     ]
     }
    ],
    "source": [
     "a= float('3.8')     # Para que funcione debe usarse un punto en vez de la coma\n",
     "\n",
     "print(a)\n",
-    "print(type(a))"
+    "print(type(a))\n",
+    "\n",
+    "b= float('3,8')\n",
+    "\n",
+    "print(b)\n",
+    "print(type(b))"
    ]
   },
   {
@@ -558,7 +587,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
diff --git a/M04_flujosdecontrol/Prep_Course_Homework_04-Resuelto.ipynb b/M04_flujosdecontrol/Prep_Course_Homework_04-Resuelto.ipynb
index c3d46af97..69577fe43 100644
--- a/M04_flujosdecontrol/Prep_Course_Homework_04-Resuelto.ipynb
+++ b/M04_flujosdecontrol/Prep_Course_Homework_04-Resuelto.ipynb
@@ -224,12 +224,12 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "El factorial es 120\n"
+      "El factorial es 720\n"
      ]
     }
    ],
    "source": [
-    "n = 5\n",
+    "n = 6\n",
     "if (type(n) == int):\n",
     "    if (n > 0):\n",
     "        factorial = n\n",
@@ -996,7 +996,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.11"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M04_flujosdecontrol/Prep_Course_Homework_04.ipynb b/M04_flujosdecontrol/Prep_Course_Homework_04.ipynb
index 8b5ecb46c..297b5726e 100644
--- a/M04_flujosdecontrol/Prep_Course_Homework_04.ipynb
+++ b/M04_flujosdecontrol/Prep_Course_Homework_04.ipynb
@@ -18,10 +18,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "La variable a si es un entero: 5 <class 'int'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "a= 5\n",
+    "\n",
+    "if type(a) == int:\n",
+    "    print(f'La variable a si es un entero: {a} ' + str(type(a)))"
+   ]
   },
   {
    "attachments": {},
@@ -33,10 +46,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 12,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Las variables son de diferentes tipos de dato\n"
+     ]
+    }
+   ],
+   "source": [
+    "a=  5\n",
+    "b= '5'\n",
+    "\n",
+    "if (type(a) == type(b)):\n",
+    "    print('Las dos variables son del mismo tipo de dato')\n",
+    "else:\n",
+    "    print('Las variables son de diferentes tipos de dato')"
+   ]
   },
   {
    "attachments": {},
@@ -48,10 +77,39 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 17,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 es un número Impar\n",
+      "2 es un número Par\n",
+      "3 es un número Impar\n",
+      "4 es un número Par\n",
+      "5 es un número Impar\n",
+      "6 es un número Par\n",
+      "7 es un número Impar\n",
+      "8 es un número Par\n",
+      "9 es un número Impar\n",
+      "10 es un número Par\n"
+     ]
+    }
+   ],
+   "source": [
+    "num= 10\n",
+    "tipo= []\n",
+    "\n",
+    "for i in range(1, num+1):\n",
+    "    if i % 2 == 0:\n",
+    "        tipo= \"Par\"\n",
+    "    else:\n",
+    "        tipo= 'Impar'\n",
+    "    print(str(i) + ' es un número ' + tipo)\n",
+    "    i += 1\n",
+    "\n"
+   ]
   },
   {
    "attachments": {},
@@ -63,10 +121,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 24,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0 elevado a la 3 es: 0\n",
+      "1 elevado a la 3 es: 1\n",
+      "2 elevado a la 3 es: 8\n",
+      "3 elevado a la 3 es: 27\n",
+      "4 elevado a la 3 es: 64\n",
+      "5 elevado a la 3 es: 125\n"
+     ]
+    }
+   ],
+   "source": [
+    "for i in range(0, 6):\n",
+    "    print(str(i), 'elevado a la 3 es:', str(i**3))"
+   ]
   },
   {
    "attachments": {},
@@ -78,10 +152,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 26,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "6\n",
+      "Ciclo:1\n",
+      "Ciclo:2\n",
+      "Ciclo:3\n",
+      "Ciclo:4\n",
+      "Ciclo:5\n",
+      "Ciclo:6\n"
+     ]
+    }
+   ],
+   "source": [
+    "num= 6\n",
+    "\n",
+    "print(num)\n",
+    "\n",
+    "for i in range(1, num+1):\n",
+    "    print(f'Ciclo:{i}')\n",
+    "    i +=1"
+   ]
   },
   {
    "attachments": {},
@@ -93,10 +189,31 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 39,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "El factorial de 2 es 2\n"
+     ]
+    }
+   ],
+   "source": [
+    "x= 2\n",
+    "factorial= 1\n",
+    "y= x\n",
+    "\n",
+    "if type(y) != int:\n",
+    "    print('La variable debe ser un entero')\n",
+    "if (y<1):\n",
+    "    print('La variable debe ser mayor que 0')\n",
+    "while (y>1):\n",
+    "    factorial = factorial * y\n",
+    "    y = y - 1\n",
+    "print(f'El factorial de {x} es', str(factorial))   "
+   ]
   },
   {
    "attachments": {},
@@ -108,10 +225,39 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 55,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Ciclo While 1\n",
+      "Ciclo For 1\n",
+      "Ciclo While 2\n",
+      "Ciclo For 1\n",
+      "Ciclo For 2\n",
+      "Ciclo While 3\n",
+      "Ciclo For 1\n",
+      "Ciclo For 2\n",
+      "Ciclo For 3\n",
+      "Ciclo While 4\n",
+      "Ciclo For 1\n",
+      "Ciclo For 2\n",
+      "Ciclo For 3\n",
+      "Ciclo For 4\n"
+     ]
+    }
+   ],
+   "source": [
+    "x= 1\n",
+    "\n",
+    "while (x<5):\n",
+    "    print('Ciclo While', str(x))\n",
+    "    for i in range (1, x+1):\n",
+    "        print ('Ciclo For', str(i))\n",
+    "    x += 1"
+   ]
   },
   {
    "attachments": {},
@@ -123,10 +269,44 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Ciclo For 1\n",
+      "Ciclo While 3\n",
+      "Ciclo While 2\n",
+      "Ciclo While 1\n",
+      "Ciclo For 2\n",
+      "Ciclo While 3\n",
+      "Ciclo While 2\n",
+      "Ciclo While 1\n",
+      "Ciclo For 3\n",
+      "Ciclo While 3\n",
+      "Ciclo While 2\n",
+      "Ciclo While 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "x= 3\n",
+    "\n",
+    "for i in range(1, x+1):\n",
+    "    print('Ciclo For', str(i))\n",
+    "    \n",
+    "    x_temp= x\n",
+    "\n",
+    "    while (x_temp>0):\n",
+    "        print('Ciclo While', str(x_temp))\n",
+    "        x_temp -= 1\n",
+    "\n",
+    "        if (x_temp<=0):\n",
+    "            break\n",
+    "\n"
+   ]
   },
   {
    "attachments": {},
@@ -138,10 +318,43 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 16,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0\n",
+      "1\n",
+      "2\n",
+      "3\n",
+      "5\n",
+      "7\n",
+      "11\n",
+      "13\n",
+      "17\n",
+      "19\n",
+      "23\n",
+      "29\n"
+     ]
+    }
+   ],
+   "source": [
+    "tope_rango= 30\n",
+    "n= 0\n",
+    "primo= True\n",
+    "\n",
+    "while (n < tope_rango):\n",
+    "    for div in range(2, n):\n",
+    "        if (n % div == 0):\n",
+    "            primo = False\n",
+    "    if (primo):\n",
+    "        print(n)\n",
+    "    else:\n",
+    "        primo = True\n",
+    "    n += 1"
+   ]
   },
   {
    "attachments": {},
@@ -238,7 +451,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.6"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,

From a05f3dde3a6585e17c3af527a3bdc8137a091b65 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Horacio=20Ram=C3=ADrez=20Escobar?=
 <elchechere2000@hotmail.com>
Date: Thu, 31 Aug 2023 09:23:08 -0500
Subject: [PATCH 4/5] exercises until 6

---
 .../Prep_Course_Homework_05-Resuelto.ipynb    |   8 +-
 .../Prep_Course_Homework_05.ipynb             | 515 +++++++++++++----
 .../Prep_Course_Homework_06-Resuelto.ipynb    |  14 +-
 .../Prep_Course_Homework_06-Resuelto.py       |   2 +-
 .../Prep_Course_Homework_06.ipynb             | 545 ++++++++++++++++--
 5 files changed, 910 insertions(+), 174 deletions(-)

diff --git a/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb b/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
index c48b5610b..c3da175ee 100644
--- a/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
+++ b/M05_estructuradedatos/Prep_Course_Homework_05-Resuelto.ipynb
@@ -18,7 +18,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -170,7 +170,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -179,7 +179,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -730,7 +730,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.6"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M05_estructuradedatos/Prep_Course_Homework_05.ipynb b/M05_estructuradedatos/Prep_Course_Homework_05.ipynb
index c71642967..0bd1405a6 100644
--- a/M05_estructuradedatos/Prep_Course_Homework_05.ipynb
+++ b/M05_estructuradedatos/Prep_Course_Homework_05.ipynb
@@ -18,10 +18,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá']\n"
+     ]
+    }
+   ],
+   "source": [
+    "ciudades= ['Paris', 'New York', 'Berlin', 'Tokio', 'Medellin','Asunción','Montevideo','Santiago','Lima','Caracas','Bogotá']\n",
+    "\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -33,10 +45,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "New York\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades[1])"
+   ]
   },
   {
    "attachments": {},
@@ -48,10 +70,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['New York', 'Berlin', 'Tokio']\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades[1:4])\n"
+   ]
   },
   {
    "attachments": {},
@@ -63,10 +95,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "list"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "type(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -78,10 +123,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá']\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades[2:])"
+   ]
   },
   {
    "attachments": {},
@@ -93,10 +148,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio']\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades[:4])"
+   ]
   },
   {
    "attachments": {},
@@ -108,10 +173,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Lima', 'Roma']\n"
+     ]
+    }
+   ],
+   "source": [
+    "ciudades= ['Paris', 'New York', 'Berlin', 'Tokio', 'Medellin','Asunción','Montevideo','Santiago','Lima','Caracas','Bogotá']\n",
+    "\n",
+    "ciudades.append('Lima') # Ya estaba en la lista\n",
+    "ciudades.append('Roma') # No estaba en la lista\n",
+    "\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -123,10 +203,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Sidney', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Lima', 'Roma']\n"
+     ]
+    }
+   ],
+   "source": [
+    "ciudades.insert(3, 'Sidney')\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -138,10 +229,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Sidney', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Lima', 'Roma', 'Kansas', 'Miami', 'Atlanta', 'Seattle']\n"
+     ]
+    }
+   ],
+   "source": [
+    "cities= ['Kansas','Miami', 'Atlanta', 'Seattle']\n",
+    "\n",
+    "ciudades.extend(cities)\n",
+    "\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -153,10 +258,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "9\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades.index('Lima'))"
+   ]
   },
   {
    "attachments": {},
@@ -168,10 +283,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "ValueError",
+     "evalue": "'Londres' is not in list",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "Cell \u001b[1;32mIn[27], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[39mprint\u001b[39m(ciudades\u001b[39m.\u001b[39;49mindex(\u001b[39m'\u001b[39;49m\u001b[39mLondres\u001b[39;49m\u001b[39m'\u001b[39;49m))\n",
+      "\u001b[1;31mValueError\u001b[0m: 'Londres' is not in list"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades.index('Londres')) # Si el elemento no está en la lista aperece un error"
+   ]
   },
   {
    "attachments": {},
@@ -183,10 +312,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá']\n"
+     ]
+    }
+   ],
+   "source": [
+    "ciudades.remove('Medellin')\n",
+    "\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -198,10 +339,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "ValueError",
+     "evalue": "list.remove(x): x not in list",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "Cell \u001b[1;32mIn[29], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m ciudades\u001b[39m.\u001b[39;49mremove(\u001b[39m'\u001b[39;49m\u001b[39mMedellin\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m      3\u001b[0m \u001b[39mprint\u001b[39m(ciudades)\n",
+      "\u001b[1;31mValueError\u001b[0m: list.remove(x): x not in list"
+     ]
+    }
+   ],
+   "source": [
+    "ciudades.remove('Medellin')  # Si el elemento no está en la lista aperece un error\n",
+    "\n",
+    "print(ciudades)"
+   ]
   },
   {
    "attachments": {},
@@ -213,10 +370,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas']\n",
+      "Bogotá\n"
+     ]
+    }
+   ],
+   "source": [
+    "ultimo= ciudades.pop()\n",
+    "\n",
+    "print(ciudades)\n",
+    "print(ultimo)"
+   ]
   },
   {
    "attachments": {},
@@ -228,10 +399,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Cucuta', 'Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Cucuta', 'Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Cucuta', 'Paris', 'New York', 'Berlin', 'Tokio', 'Medellin', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas', 'Bogotá', 'Cucuta']\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades * 4)"
+   ]
   },
   {
    "attachments": {},
@@ -243,10 +424,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'tuple'>\n",
+      "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)\n"
+     ]
+    }
+   ],
+   "source": [
+    "tupla = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)\n",
+    "print(type(tupla))\n",
+    "print(tupla)"
+   ]
   },
   {
    "attachments": {},
@@ -258,10 +452,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(11, 12, 13, 14, 15, 16)\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(tupla[10:16])"
+   ]
   },
   {
    "attachments": {},
@@ -273,10 +477,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 45,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "False\n",
+      "True\n",
+      "False\n"
+     ]
+    }
+   ],
+   "source": [
+    "print((20 and 30) in tupla)\n",
+    "\n",
+    "print(20 in tupla)\n",
+    "\n",
+    "print(30 in tupla)\n"
+   ]
   },
   {
    "attachments": {},
@@ -288,10 +508,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Se agrego el elemento Cucuta a la lista ciudades\n"
+     ]
+    }
+   ],
+   "source": [
+    "elemento = 'Cucuta'\n",
+    "\n",
+    "if (not(elemento in ciudades)):\n",
+    "    ciudades.append(elemento)\n",
+    "    print('Se agregó el elemento', elemento, 'a la lista ciudades')\n",
+    "else:\n",
+    "    print('El elemento', elemento, 'ya se encontraba en la lista ciudades')    "
+   ]
   },
   {
    "attachments": {},
@@ -303,10 +539,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1\n",
+      "1\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades.count('Paris'))\n",
+    "print(tupla.count(5))"
+   ]
   },
   {
    "attachments": {},
@@ -318,10 +566,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'list'>\n",
+      "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]\n"
+     ]
+    }
+   ],
+   "source": [
+    "list2= list(tupla)\n",
+    "print(type(list2))\n",
+    "print(list2)"
+   ]
   },
   {
    "attachments": {},
@@ -333,25 +594,55 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1\n",
+      "2\n",
+      "3\n"
+     ]
+    }
+   ],
+   "source": [
+    "v1, v2, v3, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = tupla\n",
+    "print(v1)\n",
+    "print(v2)\n",
+    "print(v3)"
+   ]
   },
   {
    "attachments": {},
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "23) Crear un diccionario utilizando la lista crada en el punto 1, asignandole la clave \"ciudad\". Agregar tambien otras claves, como puede ser \"Pais\" y \"Continente\"."
+    "23) Crear un diccionario utilizando la lista creada en el punto 1, asignandole la clave \"ciudad\". Agregar tambien otras claves, como puede ser \"Pais\" y \"Continente\"."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas']\n",
+      "{'Ciudad': ['Paris', 'New York', 'Berlin', 'Tokio', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas'], 'Pais': ['Francia', 'USA', 'Alemania', 'Japón', 'Paraguay', 'Uruguay', 'Chile', 'Perú', 'Venezuela'], 'Continente': ['Europa', 'Norte America', 'Europa', 'Asia', 'Sur America', 'Sur America', 'Sur America', 'Sur America', 'Sur America']}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(ciudades)\n",
+    "\n",
+    "dicc= {'Ciudad': ciudades, 'Pais': ['Francia', 'USA', 'Alemania', 'Japón', 'Paraguay', 'Uruguay', 'Chile', 'Perú', 'Venezuela'], 'Continente': ['Europa', 'Norte America', 'Europa', 'Asia', 'Sur America', 'Sur America', 'Sur America', 'Sur America', 'Sur America']}\n",
+    "\n",
+    "print(dicc)"
+   ]
   },
   {
    "attachments": {},
@@ -363,10 +654,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "dict_keys(['Ciudad', 'Pais', 'Continente'])\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(dicc.keys())"
+   ]
   },
   {
    "attachments": {},
@@ -378,10 +679,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "['Paris', 'New York', 'Berlin', 'Tokio', 'Asunción', 'Montevideo', 'Santiago', 'Lima', 'Caracas']\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(dicc['Ciudad'])"
+   ]
   }
  ],
  "metadata": {
@@ -403,7 +714,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.ipynb b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.ipynb
index 955bb1fa2..453c92faf 100644
--- a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.ipynb
+++ b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.ipynb
@@ -18,7 +18,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -49,7 +49,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -86,7 +86,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -583,7 +583,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -612,14 +612,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "La cantidad total de elementos es 12\n"
+      "La cantidad total de elementos es 10\n"
      ]
     }
    ],
@@ -684,7 +684,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.6"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
index 1f00fac4c..6b95afe8c 100644
--- a/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
+++ b/M06_iterablesiteradores/Prep_Course_Homework_06-Resuelto.py
@@ -24,7 +24,7 @@
 n = -15
 n = 0
 while (n < len(lista)):
-    if (lista[n] % 2 == 0):
+    if lista[n] % 2 == 0:
         print(lista[n])
     n += 1
 
diff --git a/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb b/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
index 0133dde73..2d5e85549 100644
--- a/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
+++ b/M06_iterablesiteradores/Prep_Course_Homework_06.ipynb
@@ -18,10 +18,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[-15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "lista= []\n",
+    "x= -15\n",
+    "\n",
+    "while (x < 0):\n",
+    "    lista.append(x)\n",
+    "    x += 1\n",
+    "print(lista)"
+   ]
   },
   {
    "attachments": {},
@@ -33,10 +49,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "-14\n",
+      "-12\n",
+      "-10\n",
+      "-8\n",
+      "-6\n",
+      "-4\n",
+      "-2\n"
+     ]
+    }
+   ],
+   "source": [
+    "n = 0  \n",
+    "\n",
+    "while n < len(lista):  \n",
+    "    if lista[n] % 2 == 0:  \n",
+    "        print(lista[n])  \n",
+    "    n += 1  \n",
+    "\n"
+   ]
   },
   {
    "attachments": {},
@@ -48,10 +86,28 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "-14\n",
+      "-12\n",
+      "-10\n",
+      "-8\n",
+      "-6\n",
+      "-4\n",
+      "-2\n"
+     ]
+    }
+   ],
+   "source": [
+    "for i in lista:\n",
+    "    if lista[i] % 2 == 0:\n",
+    "        print(lista[i])\n"
+   ]
   },
   {
    "attachments": {},
@@ -63,10 +119,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "-15\n",
+      "-14\n",
+      "-13\n"
+     ]
+    }
+   ],
+   "source": [
+    "for i in lista[:3]:\n",
+    "    print(i)"
+   ]
   },
   {
    "attachments": {},
@@ -78,10 +147,35 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Indice: 0 - Dato: -15\n",
+      "Indice: 1 - Dato: -14\n",
+      "Indice: 2 - Dato: -13\n",
+      "Indice: 3 - Dato: -12\n",
+      "Indice: 4 - Dato: -11\n",
+      "Indice: 5 - Dato: -10\n",
+      "Indice: 6 - Dato: -9\n",
+      "Indice: 7 - Dato: -8\n",
+      "Indice: 8 - Dato: -7\n",
+      "Indice: 9 - Dato: -6\n",
+      "Indice: 10 - Dato: -5\n",
+      "Indice: 11 - Dato: -4\n",
+      "Indice: 12 - Dato: -3\n",
+      "Indice: 13 - Dato: -2\n",
+      "Indice: 14 - Dato: -1\n"
+     ]
+    }
+   ],
+   "source": [
+    "for a, b in enumerate(lista):\n",
+    "    print('Indice:', a, '- Dato:', b)"
+   ]
   },
   {
    "attachments": {},
@@ -93,10 +187,28 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]\n"
+     ]
+    }
+   ],
+   "source": [
+    "lista = [1,2,5,7,8,10,13,14,15,17,20]\n",
+    "n = 1  # Inicializa la variable n con el valor 1\n",
+    "\n",
+    "while n <= 20:  # Mientras n sea menor o igual a 20, se ejecuta el bucle\n",
+    "    if not (n in lista):  # Verifica si n no está presente en la lista\n",
+    "        lista.insert(n-1, n)  # Inserta el valor de n en la posición (n-1) de la lista\n",
+    "    n += 1  # Incrementa el valor de n en 1 en cada iteración\n",
+    "\n",
+    "print(lista)  # Imprime la lista resultante\n"
+   ]
   },
   {
    "attachments": {},
@@ -112,10 +224,28 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229]\n"
+     ]
+    }
+   ],
+   "source": [
+    "fibo= [0, 1]\n",
+    "x= 2\n",
+    "\n",
+    "while (x < 30):\n",
+    "    \n",
+    "    fibo.append( fibo[x-1] + fibo[x-2])\n",
+    "    x += 1\n",
+    "\n",
+    "print(fibo)"
+   ]
   },
   {
    "attachments": {},
@@ -127,10 +257,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "1346268"
+      ]
+     },
+     "execution_count": 34,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "sum(fibo)"
+   ]
   },
   {
    "attachments": {},
@@ -165,10 +308,28 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7\n",
+      "21\n",
+      "39\n",
+      "60\n",
+      "67\n"
+     ]
+    }
+   ],
+   "source": [
+    "cadena = 'Hola Mundo. Esto es una practica del lenguaje de programación Python'\n",
+    "\n",
+    "for a, b in enumerate(cadena):\n",
+    "    if b == 'n':\n",
+    "        print(a)"
+   ]
   },
   {
    "attachments": {},
@@ -180,10 +341,29 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "dict_keys(['Pecho', 'Espalda', 'Pierna'])\n",
+      "Pecho\n",
+      "Espalda\n",
+      "Pierna\n"
+     ]
+    }
+   ],
+   "source": [
+    "ejercicios= {'Pecho': ['press', 'aperturas'], 'Espalda': ['remo', 'serrucho'], 'Pierna': ['sentadilla', 'pantorrila']}\n",
+    "\n",
+    "print(ejercicios.keys())\n",
+    "\n",
+    "for i in ejercicios:\n",
+    "    print(i)\n",
+    "    "
+   ]
   },
   {
    "attachments": {},
@@ -195,10 +375,182 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "H\n",
+      "o\n",
+      "l\n",
+      "a\n",
+      " \n",
+      "M\n",
+      "u\n",
+      "n\n",
+      "d\n",
+      "o\n",
+      ".\n",
+      " \n",
+      "E\n",
+      "s\n",
+      "t\n",
+      "o\n",
+      " \n",
+      "e\n",
+      "s\n",
+      " \n",
+      "u\n",
+      "n\n",
+      "a\n",
+      " \n",
+      "p\n",
+      "r\n",
+      "a\n",
+      "c\n",
+      "t\n",
+      "i\n",
+      "c\n",
+      "a\n",
+      " \n",
+      "d\n",
+      "e\n",
+      "l\n",
+      " \n",
+      "l\n",
+      "e\n",
+      "n\n",
+      "g\n",
+      "u\n",
+      "a\n",
+      "j\n",
+      "e\n",
+      " \n",
+      "d\n",
+      "e\n",
+      " \n",
+      "p\n",
+      "r\n",
+      "o\n",
+      "g\n",
+      "r\n",
+      "a\n",
+      "m\n",
+      "a\n",
+      "c\n",
+      "i\n",
+      "ó\n",
+      "n\n",
+      " \n",
+      "P\n",
+      "y\n",
+      "t\n",
+      "h\n",
+      "o\n",
+      "n\n"
+     ]
+    }
+   ],
+   "source": [
+    "cadena = 'Hola Mundo. Esto es una practica del lenguaje de programación Python'\n",
+    "\n",
+    "lis= list(cadena)\n",
+    "\n",
+    "for i in cadena:\n",
+    "    print(i)\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "H\n",
+      "o\n",
+      "l\n",
+      "a\n",
+      " \n",
+      "M\n",
+      "u\n",
+      "n\n",
+      "d\n",
+      "o\n",
+      ".\n",
+      " \n",
+      "E\n",
+      "s\n",
+      "t\n",
+      "o\n",
+      " \n",
+      "e\n",
+      "s\n",
+      " \n",
+      "u\n",
+      "n\n",
+      "a\n",
+      " \n",
+      "p\n",
+      "r\n",
+      "a\n",
+      "c\n",
+      "t\n",
+      "i\n",
+      "c\n",
+      "a\n",
+      " \n",
+      "d\n",
+      "e\n",
+      "l\n",
+      " \n",
+      "l\n",
+      "e\n",
+      "n\n",
+      "g\n",
+      "u\n",
+      "a\n",
+      "j\n",
+      "e\n",
+      " \n",
+      "d\n",
+      "e\n",
+      " \n",
+      "p\n",
+      "r\n",
+      "o\n",
+      "g\n",
+      "r\n",
+      "a\n",
+      "m\n",
+      "a\n",
+      "c\n",
+      "i\n",
+      "ó\n",
+      "n\n",
+      " \n",
+      "P\n",
+      "y\n",
+      "t\n",
+      "h\n",
+      "o\n",
+      "n\n"
+     ]
+    }
+   ],
+   "source": [
+    "recorre= iter(lis)\n",
+    "largo= len(lis)\n",
+    "\n",
+    "for i in range(0, largo):\n",
+    "    print(next(recorre))\n",
+    "    "
+   ]
   },
   {
    "attachments": {},
@@ -210,10 +562,31 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "<class 'list'>\n",
+      "<class 'list'>\n",
+      "[('a', 1), ('b', 2), ('c', 3)]\n",
+      "<class 'zip'>\n"
+     ]
+    }
+   ],
+   "source": [
+    "letras= ['a', 'b', 'c']\n",
+    "numeros= [ 1, 2, 3]\n",
+    "\n",
+    "print(type(letras))\n",
+    "print(type(numeros))\n",
+    "\n",
+    "tupla= zip(letras, numeros)\n",
+    "print(list(tupla))\n",
+    "print(type(tupla))"
+   ]
   },
   {
    "attachments": {},
@@ -226,10 +599,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[21, 35, 42, 56, 63, 84, 91]\n"
+     ]
+    }
+   ],
+   "source": [
+    "lis = [18,21,29,32,35,42,56,60,63,71,84,90,91,100]\n",
+    "lis_v2= []\n",
+    "\n",
+    "for i in lis:\n",
+    "    if (i % 7 == 0):\n",
+    "        lis_v2.append(i)\n",
+    "print(lis_v2)"
+   ]
   },
   {
    "attachments": {},
@@ -242,10 +631,30 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "La cantidad de elementos en la lista es: 12\n"
+     ]
+    }
+   ],
+   "source": [
+    "lis = [[1,2,3,4],'rojo','verde',[True,False,False],['uno','dos','tres']]\n",
+    "cantidad= 0\n",
+    "\n",
+    "\n",
+    "for elemento in lis:\n",
+    "    if (type(elemento) == list):\n",
+    "        cantidad += len(elemento)\n",
+    "    else:\n",
+    "         cantidad += 1\n",
+    "print('La cantidad de elementos en la lista es:', str(cantidad))\n",
+    "\n"
+   ]
   },
   {
    "attachments": {},
@@ -257,10 +666,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[[1, 2, 3, 4], ['rojo'], ['verde'], [True, False, False], ['uno', 'dos', 'tres']]\n"
+     ]
+    }
+   ],
+   "source": [
+    "lis = [[1,2,3,4],'rojo','verde',[True,False,False],['uno','dos','tres']]\n",
+    "\n",
+    "for indice, elemento in enumerate(lis):\n",
+    "    if type(elemento) != list:\n",
+    "        lis[indice] = [elemento]\n",
+    "\n",
+    "print(lis)"
+   ]
   }
  ],
  "metadata": {

From 61222a547e03f18b0697aa1ac0fcd1416ac67720 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Horacio=20Ram=C3=ADrez=20Escobar?=
 <elchechere2000@hotmail.com>
Date: Tue, 5 Sep 2023 22:08:36 -0500
Subject: [PATCH 5/5] checkpoint commit

---
 M07_funciones/Prep_Course_Homework_07.ipynb   | 230 ++++++++-
 .../Prep_Course_Homework_08-Resuelto.ipynb    |  16 +-
 M08_clasesyOOP/Prep_Course_Homework_08.ipynb  | 454 +++++++++++++++++-
 .../herramientas_02.cpython-311.pyc           | Bin 0 -> 591 bytes
 M08_clasesyOOP/herramientas_02.py             |  10 +
 .../Prep_Course_Homework_09.ipynb             |  26 +-
 .../__pycache__/herramientas.cpython-311.pyc  | Bin 0 -> 4920 bytes
 .../__pycache__/checkpoint.cpython-311.pyc"   | Bin 3335 -> 3316 bytes
 "Simulaci\303\263n Challenge/checkpoint.py"   |   2 +-
 9 files changed, 695 insertions(+), 43 deletions(-)
 create mode 100644 M08_clasesyOOP/__pycache__/herramientas_02.cpython-311.pyc
 create mode 100644 M08_clasesyOOP/herramientas_02.py
 create mode 100644 M09_errorhandling/__pycache__/herramientas.cpython-311.pyc

diff --git a/M07_funciones/Prep_Course_Homework_07.ipynb b/M07_funciones/Prep_Course_Homework_07.ipynb
index dc6c4e40d..102150033 100644
--- a/M07_funciones/Prep_Course_Homework_07.ipynb
+++ b/M07_funciones/Prep_Course_Homework_07.ipynb
@@ -18,10 +18,37 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def verifica_primo(nro):\n",
+    "    es_primo = True  # Variable para almacenar el resultado de la verificación de número primo\n",
+    "    for i in range(2, nro):  # Iteración sobre los números desde 2 hasta nro-1\n",
+    "        if nro % i == 0:  # Verificación si nro es divisible por i (no es primo)\n",
+    "            es_primo = False  # Se marca la variable como False indicando que el número no es primo\n",
+    "            break  # Se rompe el bucle ya que no es necesario continuar la verificación\n",
+    "    return es_primo  # Se devuelve el resultado de la verificación de número primo\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "True\n",
+      "True\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(verifica_primo(1))\n",
+    "print(verifica_primo(7))"
+   ]
   },
   {
    "attachments": {},
@@ -33,10 +60,39 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def extrae_primos_de_lista(lista):\n",
+    "    lista_primos = []  # Lista para almacenar los números primos extraídos\n",
+    "    for elemento in lista:  # Iteración sobre cada elemento de la lista\n",
+    "        if verifica_primo(int(elemento)):  # Verificación si el elemento es un número primo\n",
+    "            lista_primos.append(elemento)  # Si es primo, se agrega a la lista de primos\n",
+    "    return lista_primos  # Se devuelve la lista de números primos extraídos"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[1, 2, 3, 5, 7, 11, 13, 17, 19]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "lis_completa = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]\n",
+    "lis_primos = extrae_primos_de_lista(lis_completa)\n",
+    "lis_primos"
+   ]
   },
   {
    "attachments": {},
@@ -48,10 +104,53 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def valor_modal(lista):\n",
+    "    lista_unicos = []\n",
+    "    lista_repeticiones = []\n",
+    "    if len(lista) == 0:\n",
+    "        return None\n",
+    "    for elemento in lista:\n",
+    "        if elemento in lista_unicos:\n",
+    "            i = lista_unicos.index(elemento)\n",
+    "            lista_repeticiones[i] += 1\n",
+    "        else:\n",
+    "            lista_unicos.append(elemento)\n",
+    "            lista_repeticiones.append(1)\n",
+    "    moda = lista_unicos[0]\n",
+    "    maximo = lista_repeticiones[0]\n",
+    "    for i, elemento in enumerate(lista_unicos):\n",
+    "        if lista_repeticiones[i] > maximo:\n",
+    "            moda = lista_unicos[i]\n",
+    "            maximo = lista_repeticiones[i]\n",
+    "    return moda, maximo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(3, 3)"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "lista = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,3,3,4,5,6,]\n",
+    "\n",
+    "valor_modal(lista)\n",
+    "\n"
+   ]
   },
   {
    "attachments": {},
@@ -66,10 +165,49 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def conversion_grados(valor, origen, destino):\n",
+    "    # Función que realiza la conversión de grados entre diferentes unidades\n",
+    "    # Parámetros:\n",
+    "    # - valor: el valor numérico a convertir\n",
+    "    # - origen: la unidad de origen (celsius, farenheit, kelvin)\n",
+    "    # - destino: la unidad de destino (celsius, farenheit, kelvin)\n",
+    "\n",
+    "    if origen == 'celsius':\n",
+    "        if destino == 'celsius':\n",
+    "            valor_destino = valor  # Si la unidad de origen y destino es la misma, no se realiza ninguna conversión\n",
+    "        elif destino == 'farenheit':\n",
+    "            valor_destino = (valor * 9 / 5) + 32  # Conversión de Celsius a Farenheit\n",
+    "        elif destino == 'kelvin':\n",
+    "            valor_destino = valor + 273.15  # Conversión de Celsius a Kelvin\n",
+    "        else:\n",
+    "            print('Parámetro de Destino incorrecto')  # Mensaje de error si el parámetro de destino no es válido\n",
+    "    elif origen == 'farenheit':\n",
+    "        if destino == 'celsius':\n",
+    "            valor_destino = (valor - 32) * 5 / 9  # Conversión de Farenheit a Celsius\n",
+    "        elif destino == 'farenheit':\n",
+    "            valor_destino = valor  # Si la unidad de origen y destino es la misma, no se realiza ninguna conversión\n",
+    "        elif destino == 'kelvin':\n",
+    "            valor_destino = ((valor - 32) * 5 / 9) + 273.15  # Conversión de Farenheit a Kelvin\n",
+    "        else:\n",
+    "            print('Parámetro de Destino incorrecto')  # Mensaje de error si el parámetro de destino no es válido\n",
+    "    elif origen == 'kelvin':\n",
+    "        if destino == 'celsius':\n",
+    "            valor_destino = valor - 273.15  # Conversión de Kelvin a Celsius\n",
+    "        elif destino == 'farenheit':\n",
+    "            valor_destino = ((valor - 273.15) * 9 / 5) + 32  # Conversión de Kelvin a Farenheit\n",
+    "        elif destino == 'kelvin':\n",
+    "            valor_destino = valor  # Si la unidad de origen y destino es la misma, no se realiza ninguna conversión\n",
+    "        else:\n",
+    "            print('Parámetro de Destino incorrecto')  # Mensaje de error si el parámetro de destino no es válido\n",
+    "    else:\n",
+    "        print('Parámetro de Origen incorrecto')  # Mensaje de error si el parámetro de origen no es válido\n",
+    "    \n",
+    "    return valor_destino  # Retorna el valor convertido en la unidad de destino\n"
+   ]
   },
   {
    "attachments": {},
@@ -81,10 +219,36 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 grado Celsius a Celsius: 1\n",
+      "1 grado Celsius a Kelvin: 274.15\n",
+      "1 grado Celsius a Farenheit: 33.8\n",
+      "1 grado Kelvin a Celsius: -272.15\n",
+      "1 grado Kelvin a Kelvin: 1\n",
+      "1 grado Kelvin a Farenheit: -457.87\n",
+      "1 grado Farenheit a Celsius: -17.22222222222222\n",
+      "1 grado Farenheit a Kelvin: 255.92777777777775\n",
+      "1 grado Farenheit a Farenheit: 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "print('1 grado Celsius a Celsius:', conversion_grados(1, 'celsius', 'celsius'))\n",
+    "print('1 grado Celsius a Kelvin:', conversion_grados(1, 'celsius', 'kelvin'))\n",
+    "print('1 grado Celsius a Farenheit:', conversion_grados(1, 'celsius', 'farenheit'))\n",
+    "print('1 grado Kelvin a Celsius:', conversion_grados(1, 'kelvin', 'celsius'))\n",
+    "print('1 grado Kelvin a Kelvin:', conversion_grados(1, 'kelvin', 'kelvin'))\n",
+    "print('1 grado Kelvin a Farenheit:', conversion_grados(1, 'kelvin', 'farenheit'))\n",
+    "print('1 grado Farenheit a Celsius:', conversion_grados(1, 'farenheit', 'celsius'))\n",
+    "print('1 grado Farenheit a Kelvin:', conversion_grados(1, 'farenheit', 'kelvin'))\n",
+    "print('1 grado Farenheit a Farenheit:', conversion_grados(1, 'farenheit', 'farenheit'))"
+   ]
   },
   {
    "attachments": {},
@@ -96,10 +260,48 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 25,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def factorial(num):\n",
+    "    factorial = 1\n",
+    "\n",
+    "    if type(num) != int:\n",
+    "        factorial= None\n",
+    "        print('Debe ser entero')\n",
+    "    elif num < 0:\n",
+    "        factorial= None\n",
+    "        print('Debe ser positivo')\n",
+    "    else:\n",
+    "         if (num > 0):\n",
+    "            factorial = num\n",
+    "            while (num > 2):\n",
+    "                num = num - 1\n",
+    "                factorial = factorial * num\n",
+    "    return factorial\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "479001600"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "factorial(12)"
+   ]
   }
  ],
  "metadata": {
@@ -121,7 +323,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M08_clasesyOOP/Prep_Course_Homework_08-Resuelto.ipynb b/M08_clasesyOOP/Prep_Course_Homework_08-Resuelto.ipynb
index cdaa0f8e5..cea706461 100644
--- a/M08_clasesyOOP/Prep_Course_Homework_08-Resuelto.ipynb
+++ b/M08_clasesyOOP/Prep_Course_Homework_08-Resuelto.ipynb
@@ -200,7 +200,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -216,7 +216,7 @@
     "                break\n",
     "        return es_primo\n",
     "\n",
-    "    def valor_modal(lista):\n",
+    "    def valor_modal(self, lista):\n",
     "        lista_unicos = []\n",
     "        lista_repeticiones = []\n",
     "        if len(lista) == 0:\n",
@@ -281,7 +281,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -318,20 +318,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "El valor modal es 8 y se reptie 2 veces\n"
+      "El valor modal es 4 y se reptie 4 veces\n"
      ]
     }
    ],
    "source": [
-    "listado = [1,8,2,5,4,8,10,7]\n",
-    "moda, repe = h.valor_modal(listado, True)\n",
+    "listado = [1,8,2,5,4,4,4,4,8,10,7]\n",
+    "moda, repe = h.valor_modal(listado)\n",
     "print('El valor modal es', moda, 'y se reptie', repe, 'veces')"
    ]
   },
@@ -670,7 +670,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.11"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M08_clasesyOOP/Prep_Course_Homework_08.ipynb b/M08_clasesyOOP/Prep_Course_Homework_08.ipynb
index 3d21ca077..209b60414 100644
--- a/M08_clasesyOOP/Prep_Course_Homework_08.ipynb
+++ b/M08_clasesyOOP/Prep_Course_Homework_08.ipynb
@@ -21,10 +21,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "class Vehiculo:\n",
+    "    def __init__(self, color, tipo, cilindraje):\n",
+    "        self.color = color\n",
+    "        self.tipo = tipo\n",
+    "        self.cilindraje = cilindraje\n"
+   ]
   },
   {
    "attachments": {},
@@ -39,10 +45,27 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "class Vehiculo:\n",
+    "    def __init__(self, color, tipo, cilindraje):\n",
+    "        self.color = color\n",
+    "        self.tipo = tipo\n",
+    "        self.cilindraje = cilindraje\n",
+    "        self.velocidad = 0\n",
+    "        self.doblar = 0\n",
+    "\n",
+    "    def Acelerar(self, vel):\n",
+    "        self.velocidad += vel\n",
+    "\n",
+    "    def Frenar(self, vel):\n",
+    "        self.velocidad -= vel \n",
+    "\n",
+    "    def Doblar(self, grados):\n",
+    "        self.doblar += grados"
+   ]
   },
   {
    "attachments": {},
@@ -54,10 +77,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "a1 = Vehiculo('Rojo', 'Coupe', 2000)\n",
+    "a2 = Vehiculo('Blanco', 'Camioneta', 4500)\n",
+    "a3 = Vehiculo('Negro', 'SUV', 1600)\n",
+    "\n",
+    "a1.Acelerar(40)  # Llamada al método \"Acelerar\" del objeto \"a1\" para aumentar la velocidad en 40.\n",
+    "a2.Acelerar(60)  # Llamada al método \"Acelerar\" del objeto \"a2\" para aumentar la velocidad en 60.\n",
+    "a3.Acelerar(30)  # Llamada al método \"Acelerar\" del objeto \"a3\" para aumentar la velocidad en 30.\n",
+    "\n",
+    "a1.Doblar(30)  # Llamada al método \"Doblar\" del objeto \"a1\" para girar la dirección en 30 grados.\n",
+    "a3.Doblar(-30)  # Llamada al método \"Doblar\" del objeto \"a3\" para girar la dirección en -30 grados.\n",
+    "\n",
+    "a2.Frenar(-50)  # Llamada al método \"Frenar\" del objeto \"a2\" para disminuir la velocidad en -50."
+   ]
   },
   {
    "attachments": {},
@@ -69,10 +105,77 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 35,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "class Vehiculo:\n",
+    "    def __init__(self, color, tipo, cilindraje):\n",
+    "        self.color = color\n",
+    "        self.tipo = tipo\n",
+    "        self.cilindraje = cilindraje\n",
+    "        self.velocidad = 0\n",
+    "        self.direccion = 0\n",
+    "\n",
+    "    def Acelerar(self, vel):\n",
+    "        self.velocidad += vel\n",
+    "\n",
+    "    def Frenar(self, vel):\n",
+    "        self.velocidad -= vel \n",
+    "\n",
+    "    def Doblar(self, grados):\n",
+    "        self.direccion += grados\n",
+    "\n",
+    "    def Estado(self):\n",
+    "        print('Velocidad:', self.velocidad, '- Dirección:', self.direccion, 'grados.')\n",
+    "\n",
+    "    def Detalle(self):\n",
+    "        print('Soy', self.tipo, 'de color', self.color, 'y mi cilindrada es de', self.cilindraje, 'cc')\n",
+    "\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Soy Coupe de color Rojo y mi cilindrada es de 2000 cc\n",
+      "Velocidad: 40 - Dirección: 30 grados.\n",
+      "Soy Camioneta de color Blanco y mi cilindrada es de 4500 cc\n",
+      "Velocidad: 110 - Dirección: 0 grados.\n",
+      "Soy SUV de color Negro y mi cilindrada es de 1600 cc\n",
+      "Velocidad: 30 - Dirección: -30 grados.\n"
+     ]
+    }
+   ],
+   "source": [
+    "a1 = Vehiculo('Rojo', 'Coupe', 2000)\n",
+    "a2 = Vehiculo('Blanco', 'Camioneta', 4500)\n",
+    "a3 = Vehiculo('Negro', 'SUV', 1600)\n",
+    "\n",
+    "a1.Acelerar(40)  # Llamada al método \"Acelerar\" del objeto \"a1\" para aumentar la velocidad en 40.\n",
+    "a2.Acelerar(60)  # Llamada al método \"Acelerar\" del objeto \"a2\" para aumentar la velocidad en 60.\n",
+    "a3.Acelerar(30)  # Llamada al método \"Acelerar\" del objeto \"a3\" para aumentar la velocidad en 30.\n",
+    "\n",
+    "a1.Doblar(30)  # Llamada al método \"Doblar\" del objeto \"a1\" para girar la dirección en 30 grados.\n",
+    "a3.Doblar(-30)  # Llamada al método \"Doblar\" del objeto \"a3\" para girar la dirección en -30 grados.\n",
+    "\n",
+    "a2.Frenar(-50)  # Llamada al método \"Frenar\" del objeto \"a2\" para disminuir la velocidad en -50.\n",
+    "\n",
+    "a1.Detalle()\n",
+    "a1.Estado()\n",
+    "\n",
+    "a2.Detalle()\n",
+    "a2.Estado()\n",
+    "\n",
+    "a3.Detalle()\n",
+    "a3.Estado()"
+   ]
   },
   {
    "attachments": {},
@@ -88,10 +191,84 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 27,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "class Herramientas:\n",
+    "    def __init__(self) -> None:\n",
+    "        pass\n",
+    "\n",
+    "    def verifica_primo(self, nro):\n",
+    "        es_primo = True\n",
+    "        for i in range(2, nro):\n",
+    "            if nro % i == 0:\n",
+    "                es_primo = False\n",
+    "                break\n",
+    "        return es_primo\n",
+    "\n",
+    "    def valor_modal(self, lista):\n",
+    "        lista_unicos = []\n",
+    "        lista_repeticiones = []\n",
+    "        if len(lista) == 0:\n",
+    "            return None\n",
+    "        for elemento in lista:\n",
+    "            if elemento in lista_unicos:\n",
+    "                i = lista_unicos.index(elemento)\n",
+    "                lista_repeticiones[i] += 1\n",
+    "            else:\n",
+    "                lista_unicos.append(elemento)\n",
+    "                lista_repeticiones.append(1)\n",
+    "        moda = lista_unicos[0]\n",
+    "        maximo = lista_repeticiones[0]\n",
+    "        for i, elemento in enumerate(lista_unicos):\n",
+    "            if lista_repeticiones[i] > maximo:\n",
+    "                moda = lista_unicos[i]\n",
+    "                maximo = lista_repeticiones[i]\n",
+    "        return moda, maximo\n",
+    "\n",
+    "    def conversion_grados(self, valor, origen, destino):\n",
+    "        valor_destino = None\n",
+    "        if (origen == 'celsius'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = valor\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = (valor * 9 / 5) + 32\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = valor + 273.15\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        elif (origen == 'farenheit'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = (valor - 32) * 5 / 9\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = valor\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = ((valor - 32) * 5 / 9) + 273.15\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        elif (origen == 'kelvin'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = valor - 273.15\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = ((valor - 273.15) * 9 / 5) + 32\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = valor\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        else:\n",
+    "            print('Parámetro de Origen incorrecto')\n",
+    "        return valor_destino\n",
+    "\n",
+    "    def factorial(self, numero):\n",
+    "        if(type(numero) != int):\n",
+    "            return 'El numero debe ser un entero'\n",
+    "        if(numero < 0):\n",
+    "            return 'El numero debe ser pisitivo'\n",
+    "        if (numero > 1):\n",
+    "            numero = numero * self.factorial(numero - 1)\n",
+    "        return numero"
+   ]
   },
   {
    "attachments": {},
@@ -103,10 +280,91 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 28,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "h= Herramientas()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "295.15"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "h.conversion_grados(22, 'celsius', 'kelvin')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "120"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "h.factorial(5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "True"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "h.verifica_primo(7)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "El valor modal es 8 y se reptie 3 veces\n"
+     ]
+    }
+   ],
+   "source": [
+    "listado = [1,8,2,5,4,8, 8, 10,7]\n",
+    "moda, repe = h.valor_modal(listado)\n",
+    "print('El valor modal es', moda, 'y se reptie', repe, 'veces')"
+   ]
   },
   {
    "attachments": {},
@@ -118,10 +376,103 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 33,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "class Herramientas:\n",
+    "    def __init__(self, lista_numeros):\n",
+    "        self.lista = lista_numeros\n",
+    "\n",
+    "    def verifica_primo(self):\n",
+    "        for i in self.lista:\n",
+    "            if (self.__verifica_primo(i)):\n",
+    "                print('El elemento', i, 'SI es un numero primo')\n",
+    "            else:\n",
+    "                print('El elemento', i, 'NO es un numero primo')\n",
+    "\n",
+    "    def conversion_grados(self, origen, destino):\n",
+    "        for i in self.lista:\n",
+    "            print(i, 'grados', origen, 'son', self.__conversion_grados(i, origen, destino),'grados',destino)\n",
+    "    \n",
+    "    def factorial(self):\n",
+    "        for i in self.lista:\n",
+    "            print('El factorial de ', i, 'es', self.__factorial(i))\n",
+    "\n",
+    "    def __verifica_primo(self, nro):\n",
+    "        es_primo = True\n",
+    "        for i in range(2, nro):\n",
+    "            if nro % i == 0:\n",
+    "                es_primo = False\n",
+    "                break\n",
+    "        return es_primo\n",
+    "\n",
+    "    def valor_modal(self, menor):\n",
+    "        lista_unicos = []\n",
+    "        lista_repeticiones = []\n",
+    "        if len(self.lista) == 0:\n",
+    "            return None\n",
+    "        if (menor):\n",
+    "            self.lista.sort()\n",
+    "        else:\n",
+    "            self.lista.sort(reverse=True)\n",
+    "        for elemento in self.lista:\n",
+    "            if elemento in lista_unicos:\n",
+    "                i = lista_unicos.index(elemento)\n",
+    "                lista_repeticiones[i] += 1\n",
+    "            else:\n",
+    "                lista_unicos.append(elemento)\n",
+    "                lista_repeticiones.append(1)\n",
+    "        moda = lista_unicos[0]\n",
+    "        maximo = lista_repeticiones[0]\n",
+    "        for i, elemento in enumerate(lista_unicos):\n",
+    "            if lista_repeticiones[i] > maximo:\n",
+    "                moda = lista_unicos[i]\n",
+    "                maximo = lista_repeticiones[i]\n",
+    "        return moda, maximo\n",
+    "\n",
+    "    def __conversion_grados(self, valor, origen, destino):\n",
+    "        valor_destino = None\n",
+    "        if (origen == 'celsius'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = valor\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = (valor * 9 / 5) + 32\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = valor + 273.15\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        elif (origen == 'farenheit'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = (valor - 32) * 5 / 9\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = valor\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = ((valor - 32) * 5 / 9) + 273.15\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        elif (origen == 'kelvin'):\n",
+    "            if (destino == 'celsius'):\n",
+    "                valor_destino = valor - 273.15\n",
+    "            elif (destino == 'farenheit'):\n",
+    "                valor_destino = ((valor - 273.15) * 9 / 5) + 32\n",
+    "            elif (destino == 'kelvin'):\n",
+    "                valor_destino = valor\n",
+    "            else:\n",
+    "                print('Parámetro de Destino incorrecto')\n",
+    "        else:\n",
+    "            print('Parámetro de Origen incorrecto')\n",
+    "        return valor_destino\n",
+    "\n",
+    "    def __factorial(self, numero):\n",
+    "        if(type(numero) != int):\n",
+    "            return 'El numero debe ser un entero'\n",
+    "        if(numero < 0):\n",
+    "            return 'El numero debe ser pisitivo'\n",
+    "        if (numero > 1):\n",
+    "            numero = numero * self.__factorial(numero - 1)\n",
+    "        return numero"
+   ]
   },
   {
    "attachments": {},
@@ -133,10 +484,79 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 45,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from herramientas_02 import *"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "listado = [1,8,2,5,4,8, 8, 10,7]\n",
+    "\n",
+    "h2= Herramientas(listado)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "El elemento 1 SI es un numero primo\n",
+      "El elemento 8 NO es un numero primo\n",
+      "El elemento 2 SI es un numero primo\n",
+      "El elemento 5 SI es un numero primo\n",
+      "El elemento 4 NO es un numero primo\n",
+      "El elemento 8 NO es un numero primo\n",
+      "El elemento 8 NO es un numero primo\n",
+      "El elemento 10 NO es un numero primo\n",
+      "El elemento 7 SI es un numero primo\n"
+     ]
+    }
+   ],
+   "source": [
+    "h2.verifica_primo()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "from herramientas_02 import *\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "NameError",
+     "evalue": "name 'Herramientas' is not defined",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[1;32mIn[3], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m Herramientas\u001b[39m.\u001b[39mverifica_primo(listado)\n",
+      "\u001b[1;31mNameError\u001b[0m: name 'Herramientas' is not defined"
+     ]
+    }
+   ],
+   "source": [
+    "Herramientas.verifica_primo(listado)"
+   ]
   }
  ],
  "metadata": {
@@ -158,7 +578,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M08_clasesyOOP/__pycache__/herramientas_02.cpython-311.pyc b/M08_clasesyOOP/__pycache__/herramientas_02.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..57f90ca7f3d5746d6fa680cc2e0fa08c59d400a1
GIT binary patch
diff --git a/M08_clasesyOOP/herramientas_02.py b/M08_clasesyOOP/herramientas_02.py
new file mode 100644
index 000000000..b11bd20c6
--- /dev/null
+++ b/M08_clasesyOOP/herramientas_02.py
@@ -0,0 +1,10 @@
+
+
+def factorial(self, numero):
+    if(type(numero) != int):
+        return 'El numero debe ser un entero'
+    if(numero < 0):
+        return 'El numero debe ser pisitivo'
+    if (numero > 1):
+        numero = numero * self.__factorial(numero - 1)
+    return numero
\ No newline at end of file
diff --git a/M09_errorhandling/Prep_Course_Homework_09.ipynb b/M09_errorhandling/Prep_Course_Homework_09.ipynb
index e3e771b0b..0b0b26e13 100644
--- a/M09_errorhandling/Prep_Course_Homework_09.ipynb
+++ b/M09_errorhandling/Prep_Course_Homework_09.ipynb
@@ -18,10 +18,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "import sys\n",
+    "\n",
+    "sys.path.append(r'D:\\Python\\Python-Prep\\M08_clasesyOOP\\herramientas.py')"
+   ]
   },
   {
    "attachments": {},
@@ -31,6 +35,22 @@
     "2) En la función que hace la conversión de grados, validar que los parámetros enviados sean los esperados, de no serlo, informar cuáles son los valores esperados."
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import herramientas as h   \n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -138,7 +158,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.11.3"
   }
  },
  "nbformat": 4,
diff --git a/M09_errorhandling/__pycache__/herramientas.cpython-311.pyc b/M09_errorhandling/__pycache__/herramientas.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..23487ad85b5e610d3f92fa3944c302f9bcefbfb2
GIT binary patch
diff --git "a/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc" "b/Simulaci\303\263n Challenge/__pycache__/checkpoint.cpython-311.pyc"
index f2d8213c09c15fd7255bcde5db5bf9fa7de8afab..b6078ff0e5e2bc25de37b7f7fd90d3090a378bc3 100644
GIT binary patch
diff --git "a/Simulaci\303\263n Challenge/checkpoint.py" "b/Simulaci\303\263n Challenge/checkpoint.py"
index a94b6643a..622a03d7f 100644
--- "a/Simulaci\303\263n Challenge/checkpoint.py"	
+++ "b/Simulaci\303\263n Challenge/checkpoint.py"	
@@ -45,7 +45,7 @@ def EsPrimo(valor):
         if (valor % i) == 0:
             Primo = False
             break
-        i += 1
+        
 
     return Primo
 
