From ddd781af7fb96a9afb6efdd422eeb1de0f13cbbb Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Wed, 20 Jul 2022 17:01:11 -0500
Subject: [PATCH 1/6] Tarea de la clase 1 realizada

---
 .../Preliminares en Clase - 02.ipynb          |  37 +++-
 02 - Variables y Tipos de Datos/Tarea.py      | 159 ++++++++++++++++++
 2 files changed, 187 insertions(+), 9 deletions(-)
 create mode 100644 02 - Variables y Tipos de Datos/Tarea.py

diff --git a/02 - Variables y Tipos de Datos/Preliminares en Clase - 02.ipynb b/02 - Variables y Tipos de Datos/Preliminares en Clase - 02.ipynb
index a2fc129a3..52858bccb 100644
--- a/02 - Variables y Tipos de Datos/Preliminares en Clase - 02.ipynb	
+++ b/02 - Variables y Tipos de Datos/Preliminares en Clase - 02.ipynb	
@@ -9,23 +9,37 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "",
+     "evalue": "",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31mLa ejecución de celdas con 'Python 3.7.3 64-bit' requieren el paquete ipykernel.\n",
+      "Ejecute el siguiente comando para instalar 'ipykernel' en el entorno de Python. comando \r\n",
+      ": '/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install ipykernel -U --force-reinstall'"
+     ]
+    }
+   ],
    "source": [
     "mi_var = 12 + 1j"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": null,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "12\n"
+     "ename": "",
+     "evalue": "",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31mLa ejecución de celdas con 'Python 3.7.3 64-bit' requieren el paquete ipykernel.\n",
+      "Ejecute el siguiente comando para instalar 'ipykernel' en el entorno de Python. comando \r\n",
+      ": '/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install ipykernel -U --force-reinstall'"
      ]
     }
    ],
@@ -2610,7 +2624,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3.7.3 64-bit",
    "language": "python",
    "name": "python3"
   },
@@ -2624,7 +2638,12 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.7.3"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "5edc29c2ed010d6458d71a83433b383a96a8cbd3efe8531bc90c4b8a5b8bcec9"
+   }
   }
  },
  "nbformat": 4,
diff --git a/02 - Variables y Tipos de Datos/Tarea.py b/02 - Variables y Tipos de Datos/Tarea.py
new file mode 100644
index 000000000..e1d9d5cc4
--- /dev/null
+++ b/02 - Variables y Tipos de Datos/Tarea.py	
@@ -0,0 +1,159 @@
+txt = "Respuesta: "
+line = "----------------------------------------------------------------"
+
+
+def org(qstn, res):
+    txt = "Respuesta: "
+    line = "----------------------------------------------------------------"
+
+    print(qstn)
+    print(txt, res)
+    print(line)
+
+
+qstn1 = "1) Crear una variable que contenga un elemento del conjunto de números enteros y luego imprimir por pantalla"
+x = 27
+org(qstn1, x)
+
+# -------------------------
+
+qstn2 = "2) Imprimir el tipo de dato de la constante 8.5"
+org(qstn2, 8.5)
+# ---------------------
+
+qstn3 = "3) Imprimir el tipo de dato de la variable creada en el punto 1"
+res3 = type(x)
+org(qstn3, res3)
+# ---------------------
+
+print("4) Crear una variable que contenga tu nombre")
+nombre = "Sebastian"
+print(txt, nombre)
+print(line)
+# ---------------------
+
+print("5) Crear una variable que contenga un número complejo")
+complejo = 5 + 3j
+print(line)
+# ---------------------
+
+print("6) Mostrar el tipo de dato de la variable crada en el punto 5")
+print(txt, complejo)
+print(line)
+# ---------------------
+
+print(
+    "7) Crear una variable que contenga el valor del número Pi redondeado a 4 decimales"
+)
+pi = 3.1416
+print(line)
+# ---------------------
+
+print(
+    "8) Crear una variable que contenga el valor ",
+    '"True"',
+    " y otra que contenga el valor True. ¿Se trata de lo mismo?",
+)
+tru_str = "True"
+tru_bul = True
+print(txt, tru_bul == tru_str)
+print(line)
+# ---------------------
+
+print(
+    "9) Imprimir el tipo de dato correspondientes a las variables creadas en el punto 9"
+)
+print(txt, type(tru_str), type(tru_bul))
+print(line)
+# ---------------------
+
+print("10) Asignar a una variable, la suma de un número entero y otro decimal")
+suma = 23 + 23.32
+print(line)
+# ---------------------
+
+print("11) Realizar una operación de suma de números complejos")
+complejo2 = 3 + 1j
+sum_complex = complejo + complejo2
+print(txt, "La suma entre ", complejo, " y ", complejo2, " es: ", sum_complex)
+print(line)
+# ---------------------
+
+print("12) Realizar una operación de suma de un número real y otro complejo")
+suma = suma + complejo
+print(txt, suma)
+print(line)
+# ---------------------
+
+print("13) Realizar una operación de multiplicación")
+print(txt, 23 * 11)
+print(line)
+# --------------------
+
+qstn14 = "14) Mostrar el resultado de elevar 2 a la octava potencia"
+org(qstn14, 2**8)
+# --------------------
+
+qstn15 = "15) Obtener el cociente de la división de 27 entre 4 en una variable y luego mostrarla"
+res15 = 27 / 4
+org(qstn15, res15)
+# ---------------------
+
+qstn16 = "16) De la división anterior solamente mostrar la parte entera"
+res16 = 27 // 4
+org(qstn16, res16)
+# ---------------------
+
+qstn17 = "17) De la división de 27 entre 4 mostrar solamente el resto"
+res17 = 27 % 4
+org(qstn17, res17)
+# ---------------------
+
+qstn18 = "18) Utilizando como operandos el número 4 y los resultados obtenidos en los puntos 16 y 17. Obtener 27 como resultado"
+res18 = (4 * res16) + res17
+org(qstn18, res18)
+# ---------------------
+
+qstn19 = '19) Utilizar el operador "+" en una operación donde intervengan solo variables alfanuméricas'
+org(qstn19, "con" + "ca" + "te" + "nar")
+# ---------------------
+
+qstn20 = '20) Evaluar si "2" es igual a 2. ¿Por qué ocurre eso?'
+res20 = "no son del mismo tipo"
+print(2, ' == "2": ', 2 == "2")
+org(qstn20, res20)
+# ---------------------
+
+qstn21 = "21) Utilizar las funciones de cambio de tipo de dato, para que la validación del punto 20 resulte verdadera"
+res21 = str(2) == "2"
+org(qstn21, res21)
+# ---------------------
+
+qstn22 = (
+    '22) ¿Por qué arroja error el siguiente cambio de tipo de datos? a = float("3,8")'
+)
+res22 = "La coma denota la entrada de dos datos diferentes, no la separación entre un entero y su parte decimal"
+org(qstn22, res22)
+# ---------------------
+
+qstn23 = '23) Crear una variable con el valor 3, y utilizar el operador "-=" para modificar su contenido'
+res23 = 3
+res23 -= 1
+org(qstn23, res23)
+# ---------------------
+
+qstn24 = "24) Realizar la operacion 1 << 2 ¿Por qué da ese resultado? ¿Qué es el sistema de numeración binario?"
+res24 = 1 << 2
+org(qstn24, res24)
+# ---------------------
+
+qstn25 = '25) Realizar la operación 2 + "2" ¿Por qué no está permitido? ¿Si los dos operandos serían del mismo tipo, siempre arrojaría el mismo resultado?'
+res25 = 'No se pueden concatenar un str con otro tipo de dato a traves de "+".'
+org(qstn25, res25)
+# ---------------------
+
+qstn26 = "26) Realizar una operación válida entre valores de tipo entero y string"
+m = 2 == "2"
+res26 = '2== "2"', m
+print(type(res26))
+org(qstn26, res26)

From 5725378a3192c50972e83c39c68067636fb9c716 Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Mon, 25 Jul 2022 23:24:03 -0500
Subject: [PATCH 2/6] Tarea de flujos de control

---
 .../Prep_Course_Homework_03-Resuelto.ipynb    |  12 +-
 03 - Flujos de Control/Tarea.py               | 164 ++++++++++++++++++
 2 files changed, 171 insertions(+), 5 deletions(-)
 create mode 100644 03 - Flujos de Control/Tarea.py

diff --git a/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb b/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb
index 39f94f511..afbc15343 100644
--- a/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb	
+++ b/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb	
@@ -716,11 +716,8 @@
   }
  ],
  "metadata": {
-  "interpreter": {
-   "hash": "c85384e4cb51c8b72350f3a8712cc8351fdc3955e32a27f9b60c6242ab125f01"
-  },
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3.7.3 64-bit",
    "language": "python",
    "name": "python3"
   },
@@ -734,7 +731,12 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.7.3"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "5edc29c2ed010d6458d71a83433b383a96a8cbd3efe8531bc90c4b8a5b8bcec9"
+   }
   }
  },
  "nbformat": 4,
diff --git a/03 - Flujos de Control/Tarea.py b/03 - Flujos de Control/Tarea.py
new file mode 100644
index 000000000..07bba5b0c
--- /dev/null
+++ b/03 - Flujos de Control/Tarea.py	
@@ -0,0 +1,164 @@
+from ast import While
+import random
+from turtle import done
+
+txt = "Respuesta: "
+line = "----------------------------------------------------------------"
+
+
+def org(qstn, respuesta, var, var2):
+    txt = "Respuesta: "
+    line = "----------------------------------------------------------------"
+
+    print(qstn)
+    print(var)
+    print(var2)
+    print(txt, respuesta)
+    print(line)
+
+
+qstn = '1) Crear una variable que contenga un elemento del conjunto de números enteros y luego imprimir por pantalla si es mayor o menor a cero'
+rdm = random.randint(-99, 99)
+
+if rdm > 0:
+    org(qstn, 'Es mayor a 0', rdm, ' ')
+
+else:
+    org(qstn, 'No es mayor a 0', rdm, ' ')
+# ---------------------
+
+qstn = '2) Crear dos variables y un condicional que informe si son del mismo tipo de dato'
+
+var1 = 73
+var2 = 34, 2
+
+if type(var1) == type(var2):
+    org(qstn, 'Son del mismo tipo', var1, var2)
+
+else:
+    org(qstn, 'No son del mismo tipo', var1, var2)
+# ---------------------
+
+qstn = '3) Para los valores enteros del 1 al 20, imprimir por pantalla si es par o impar'
+num = 1
+
+print(qstn)
+print(txt)
+
+while num <= 20:
+    if num % 2 == 0:
+        print(num, 'Es par')
+        num += 1
+    else:
+        print(num, 'No es par')
+        num += 1
+
+print(line)
+# ---------------------
+
+qstn = '4) En un ciclo for mostrar para los valores entre 0 y 5 el resultado de elevarlo a la potencia igual a 3'
+print(qstn)
+print(txt)
+
+for i in range(0, 6):
+    print(i**3)
+print(line)
+# ---------------------
+
+qstn = '5) Crear una variable que contenga un número entero y realizar un ciclo for la misma cantidad de ciclos'
+num2 = 5
+
+print(qstn)
+print(txt)
+
+for i in range(0, num2):
+    print('Ciclo ', i+1)
+
+print(line)
+# ---------------------
+
+qstn = '6) Utilizar un ciclo while para realizar el factorial de un número guardado en una variable, sólo si la variable contiene un número entero mayor a 0'
+
+fact = 5
+
+factor = 1
+
+print(qstn)
+print('El factorial de ', fact, ' es: ')
+
+if fact >= 0 and type(fact) == int:
+
+    while fact != 0:
+        print(fact)
+        factor *= fact
+        fact -= 1
+
+print(txt, factor)
+print(line)
+# ---------------------
+
+qstn = '7) Crear un ciclo for dentro de un ciclo while'
+a = 0
+
+print(qstn)
+while a < 5:
+    print('|')
+    for i in range(0, 2):
+        print('-')
+        a += 1
+
+print(line)
+
+qstn = '8) Crear un ciclo while dentro de un ciclo for'
+a = 0
+print(qstn)
+for i in range(0, 2):
+    print('-')
+    while a < 5:
+        print('|')
+        a += 1
+print(line)
+# ---------------------
+
+qstn = '9) Imprimir los números primos existentes entre 0 y 30'
+print(qstn)
+
+num = 0
+num2 = 30
+primo = True
+while num < num2:
+    for i in range(2, num):
+        if num % i == 0:
+            # print(num, ' nunca primo')
+            primo = False
+    if primo:
+        print(num, ' siempre primo')
+            
+    else:
+     primo = True       
+    num += 1
+print(line)
+# ---------------------
+
+qstn = '10) ¿Se puede mejorar el proceso del punto 9? Utilizar las sentencias break y/ó continue para tal fin'
+print(qstn)
+
+num = 0
+num2 = 30
+primo = True
+while num < num2:
+    for i in range(2, num):
+        if num % i == 0:
+            # print(num, ' nunca primo')
+            primo = False
+            break
+    if primo:
+        print(num, ' siempre primo')
+            
+    else:
+     primo = True       
+    num += 1
+print(line)
+# ---------------------
+
+qstn = '11) En los puntos 9 y 10, se diseño un código que encuentra números primos y además se lo optimizó. ¿Es posible saber en qué medida se optimizó?'

From d9173374caac40995816d476295a8ebbc071944a Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Tue, 2 Aug 2022 20:09:59 -0500
Subject: [PATCH 3/6] Tarea 3

---
 .../Prep_Course_Homework_03-Resuelto.ipynb    |  25 +---
 03 - Flujos de Control/Tarea.py               | 126 +++++++++++++++++-
 2 files changed, 124 insertions(+), 27 deletions(-)

diff --git a/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb b/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb
index afbc15343..9ec63bb1f 100644
--- a/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb	
+++ b/03 - Flujos de Control/Prep_Course_Homework_03-Resuelto.ipynb	
@@ -418,30 +418,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 57,
+   "execution_count": null,
    "metadata": {},
-   "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",
-      "Cantidad de ciclos: 134\n",
-      "Se optimizó a un 0.3544973544973545% de ciclos aplicando break\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "ciclos_con_break = 0\n",
     "n = 0\n",
diff --git a/03 - Flujos de Control/Tarea.py b/03 - Flujos de Control/Tarea.py
index 07bba5b0c..fca20f518 100644
--- a/03 - Flujos de Control/Tarea.py	
+++ b/03 - Flujos de Control/Tarea.py	
@@ -1,5 +1,7 @@
 from ast import While
+from operator import ne
 import random
+from secrets import choice
 from turtle import done
 
 txt = "Respuesta: "
@@ -133,9 +135,9 @@ def org(qstn, respuesta, var, var2):
             primo = False
     if primo:
         print(num, ' siempre primo')
-            
+
     else:
-     primo = True       
+        primo = True
     num += 1
 print(line)
 # ---------------------
@@ -154,11 +156,127 @@ def org(qstn, respuesta, var, var2):
             break
     if primo:
         print(num, ' siempre primo')
-            
+
     else:
-     primo = True       
+        primo = True
     num += 1
 print(line)
 # ---------------------
 
 qstn = '11) En los puntos 9 y 10, se diseño un código que encuentra números primos y además se lo optimizó. ¿Es posible saber en qué medida se optimizó?'
+print(qstn)
+# codigo sin break
+ciclos_sin_break = 0
+num = 0
+num2 = 30
+primo = True
+while num < num2:
+    for i in range(2, num):
+        ciclos_sin_break += 1
+        if num % i == 0:
+            # print(num, ' nunca primo')
+            primo = False
+    if primo:
+        print(num, ' siempre primo')
+
+    else:
+        primo = True
+    num += 1
+
+
+# ciclo con break
+ciclos_con_break = 0
+num = 0
+num2 = 30
+primo = True
+while num < num2:
+    for i in range(2, num):
+        ciclos_con_break += 1
+        if num % i == 0:
+            # print(num, ' nunca primo')
+            primo = False
+            break
+    if primo:
+        print(num, ' siempre primo')
+
+    else:
+        primo = True
+    num += 1
+
+print('Cantidad de ciclos: ', ciclos_sin_break,
+      '\n', 'Ciclos con break: ', ciclos_con_break)
+print(line)
+
+# ---------------------
+
+qstn = '12) Si la cantidad de números que se evalúa es mayor a treinta, esa optimización crece?'
+print(qstn)
+
+print('si')
+print(line)
+# ---------------------
+
+qstn = '13) Aplicando continue, armar un ciclo while que solo imprima los valores divisibles por 12, dentro del rango de números de 100 a 300'
+print(qstn)
+# un numero es divisible entre 12 si es divisible entre 3 y 4.
+# un numero es divisible entre 3 si es divisible entre si la suma de sus digito es multiplo de 3.
+# un numero es divisible entre 4.
+init = 100
+end = 300
+
+while init <= end:
+    if init % 12 != 0:
+        init += 1
+        continue
+    print(init)
+    init += 1
+
+print(line)
+# ---------------------
+
+qstn = '14) Utilizar la función **input()** que permite hacer ingresos por teclado, para encontrar números primos y dar la opción al usario de buscar el siguiente'
+print(qstn)
+
+#next = True
+primo = False
+
+while next:
+
+    optn = input('Ingrese un número para averiguar si este es primo suyo: \n')
+
+    for num in range(2, 10):
+        if int(optn) % num == 0:
+            if int(optn) == num:
+                continue
+            else:
+                primo = False
+
+                break
+        else:
+            primo = True
+
+    if primo:
+        print('!Saluda al primo¡ :D \n', optn)
+    else:
+        print('No es primo >:v')
+
+    x = input('Desea hallar a otro primo 🌝? (S/N): ')
+
+    if x.upper() == 'N':
+        print('Adios')
+        next = False
+print(line)
+# ---------------------
+
+qstn = '15) Crear un ciclo while que encuentre dentro del rango de 100 a 300 el primer número divisible por 3 y además múltiplo de 6'
+print(qstn)
+
+low = 100
+up = 301
+
+while low != up:
+    if low % 3 == 0 and low % 6 == 0:
+        print(low)
+        break
+    else: 
+        low += 1
\ No newline at end of file

From 791da6e89fbaa8b3509ef6c8d7509caa32f404c6 Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Sat, 6 Aug 2022 18:55:51 -0500
Subject: [PATCH 4/6] Tarea 4

---
 04 - Estructuras de datos/Tarea.py | 208 +++++++++++++++++++++++++++++
 1 file changed, 208 insertions(+)
 create mode 100644 04 - Estructuras de datos/Tarea.py

diff --git a/04 - Estructuras de datos/Tarea.py b/04 - Estructuras de datos/Tarea.py
new file mode 100644
index 000000000..b3d2b472d
--- /dev/null
+++ b/04 - Estructuras de datos/Tarea.py	
@@ -0,0 +1,208 @@
+
+
+txt = "Respuesta: "
+line = "----------------------------------------------------------------"
+
+
+def org(qstn, respuesta, var, var2):
+
+    txt = "Respuesta: "
+    line = "----------------------------------------------------------------"
+
+    print(qstn, '\n \n', txt, '\n \n',
+          respuesta, '\n \n', var, '\n \n', var2)
+    '''print(var)
+    print(var2)
+    print(txt, respuesta)'''
+    print(line, '\n')
+
+
+q = '1) Crear una lista que contenga nombres de ciudades del mundo que contenga más de 5 elementos e imprimir por pantalla'
+
+cities = ['Bogotá', 'Buenos Aires', 'Santiago', 'Atenas',
+          'El Cairo', 'Oslo', 'Londres', 'Madrid', 'París']
+
+org(q, cities, '', '')
+# ---------------------
+
+q = '2) Imprimir por pantalla el segundo elemento de la lista'
+
+org(q, cities[1], '', '')
+# ---------------------
+
+q = '3) Imprimir por pantalla del segundo al cuarto elemento'
+
+org(q, cities[1:4], '', '')
+# ---------------------
+
+q = '4) Visualizar el tipo de dato de la lista'
+
+org(q, type(cities), '', '')
+# ---------------------
+
+q = '5) Visualizar todos los elementos de la lista a partir del tercero de manera genérica, es decir, sin explicitar la posición del último elemento'
+
+org(q, cities[2:], '', '')
+# ---------------------
+
+q = '6) Visualizar los primeros 4 elementos de la lista'
+
+org(q, cities[:4], '', '')
+# ---------------------
+
+q = '7) Agregar una ciudad más a la lista que ya exista y otra que no ¿Arroja algún tipo de error?'
+
+cities.append('Santiago')
+cities.append('Jerusalen')
+org(q, cities, 'No se evidencia ningún tipo de error', '')
+# ---------------------
+
+q = '8) Agregar otra ciudad, pero en la cuarta posición'
+
+cities.insert(3, ' Beijing')
+
+org(q, cities, '', '')
+# ---------------------
+
+q = '9) Concatenar otra lista a la ya creada'
+
+colors = ['Amarillo', 'Azul', 'Rojo', 'Verde', 'Magenta', 'Blanco', 'Negro']
+cities.extend(colors)
+
+org(q, cities, '', '')
+# ---------------------
+
+q = '10) Encontrar el índice de la ciudad que en el punto 7 agregamos duplicada. ¿Se nota alguna particularidad?'
+
+cities.remove('Amarillo')
+cities.remove('Azul')
+cities.remove('Rojo')
+cities.remove('Verde')
+cities.remove('Magenta')
+cities.remove('Blanco')
+cities.remove('Negro')
+
+org(q, cities.index('Santiago'),
+    'Muestra el indice del primero que encuentra solamente', '')
+# ---------------------
+
+q = '11) ¿Qué pasa si se busca un elemento que no existe?'
+
+org(q, 'cities.index(Viena)',
+    'Arroja un error que especifica que <Austria> no está en la lista', '')
+# ---------------------
+
+q = '12) Eliminar un elemento de la lista'
+
+cities.remove('Santiago')
+org(q, 'cities.remove("Chile")', cities,
+    'NOTA: si se da el nombre de un elemento que esta repetido, borra el primero que encuentre')
+# ---------------------
+
+q = '13) ¿Qué pasa si el elemento a eliminar no existe?'
+
+org(q, 'cities.remove("Madagascar")', cities,
+    'Arroja un error que anuncia que el elemento no está en la lista')
+# ---------------------
+
+q = '14) Extraer el úlimo elemento de la lista, guardarlo en una variable e imprimirlo'
+
+x = cities.pop(len(cities)-1)
+
+org(q, cities, 'x = cities.pop(len(cities)-1)', x)
+# ---------------------
+
+q = '15) Mostrar la lista multiplicada por 4'
+
+org(q, cities*4, 'NOTA: imprime todo como si fuera una sola lista', '')
+# ---------------------
+
+q = '16) Crear una tupla que contenga los números enteros del 1 al 20'
+
+x = range(1, 21)
+nums = []
+for n in x:
+    nums.append(n)
+nums = tuple(nums)
+# print(type(nums), type(nums))
+org(q, nums, type(nums), '')
+# ---------------------
+
+q = '17) Imprimir desde el índice 10 al 15 de la tupla'
+
+org(q, nums[10:16], '', '')
+# ---------------------
+
+q = '18) Evaluar si los números 20 y 30 están dentro de la tupla'
+
+
+if 20 in nums and 30 in nums:
+    org(q, 'Ambos elementos estan presentes', '', '')
+elif 20 in nums and not 30 in nums:
+    org(q, 'Solo el 20 esta presente', '', '')
+elif not 20 in nums and 30 in nums:
+    org(q, 'Solo el 30 esta presente', '', '')
+else:
+    org(q, 'Ninguno de los elementos está presente', '', '')
+# ---------------------
+
+q = '19) Con la lista creada en el punto 1, validar la existencia del elemento "París" y si no existe, agregarlo. Utilizar una variable e informar lo sucedido.'
+
+y = 'París'
+x = y in cities
+
+if x:
+    org(q, 'La ciudad: ' + y, 'Está en la lista', cities)
+else:
+    cities.append(y)
+    org(q, 'La ciudad: ' + y, 'No está en la lista. Se procedera a agregarla', cities)
+# ---------------------
+
+q = '20) Mostrar la cantidad de veces que se encuentra un elemento específico dentro de la tupla y de la lista'
+
+el = '9'
+
+x = el in cities
+y = int(el) in nums
+
+if x:
+    org(q, el, 'Está ' + str(cities.count(el)) + ' veces en cities', cities)
+elif y:
+    org(q, el, 'Está ' + str(nums.count(el)) + ' veces en nums', nums)
+else:
+    org(q, el, 'No está en cities ni en nums', cities.append(nums))
+# ---------------------
+
+q = '21) Convertir la tupla en una lista'
+Lnums = list(nums)
+org(q, Lnums, type(Lnums), '')
+# ---------------------
+
+q = '22) Desempaquetar solo los primeros 3 elementos de la tupla en 3 variables'
+
+x, y, z = nums[0:3]
+
+org(q, x, y, z)
+# ---------------------
+
+q = '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".'
+
+
+Mundo = {
+    'Capitales': cities,
+    'Paises': ['Colombia', 'Argentina', 'China', 'Grecia', 'Egipto', 'Noruega', 'Inglaterra', 'España',
+               'Francia', 'Chile'],
+    'Continentes': ['America', 'Europa', 'Asia', 'Africa', 'Oceanía']
+}
+
+org(q, Mundo, '', '')
+# ---------------------
+
+q = '24) Imprimir las claves del diccionario'
+
+org(q,'Las claves del diccionario son: ', Mundo.keys(), '')
+# ---------------------
+
+q = '25) Imprimir las ciudades a través de su clave'
+
+org(q, 'Las ciudades son: ', Mundo['Capitales'], '')
\ No newline at end of file

From 3cb8442aeec797800eac415c1899f6a8880e516c Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Sat, 6 Aug 2022 19:01:08 -0500
Subject: [PATCH 5/6] Poniendo al dia

---
 .vscode/settings.json                         |  3 +++
 .../Preliminares - 01-checkpoint.ipynb"       | 22 +++++++++++++------
 2 files changed, 18 insertions(+), 7 deletions(-)
 create mode 100644 .vscode/settings.json

diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..93b3dcea7
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "terminal.integrated.cursorStyle": "underline"
+}
\ No newline at end of file
diff --git "a/01 - Introducci\303\263n a la Programaci\303\263n/.ipynb_checkpoints/Preliminares - 01-checkpoint.ipynb" "b/01 - Introducci\303\263n a la Programaci\303\263n/.ipynb_checkpoints/Preliminares - 01-checkpoint.ipynb"
index a62bcd0ee..f85a109af 100644
--- "a/01 - Introducci\303\263n a la Programaci\303\263n/.ipynb_checkpoints/Preliminares - 01-checkpoint.ipynb"	
+++ "b/01 - Introducci\303\263n a la Programaci\303\263n/.ipynb_checkpoints/Preliminares - 01-checkpoint.ipynb"	
@@ -276,14 +276,17 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 41,
+   "execution_count": null,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "['Rojo', 'Azul']\n"
+     "ename": "",
+     "evalue": "",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31mLa ejecución de celdas con 'Python 3.7.3 64-bit' requieren el paquete ipykernel.\n",
+      "Ejecute el siguiente comando para instalar 'ipykernel' en el entorno de Python. comando \r\n",
+      ": '/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install ipykernel -U --force-reinstall'"
      ]
     }
    ],
@@ -2322,7 +2325,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3.7.3 64-bit",
    "language": "python",
    "name": "python3"
   },
@@ -2336,7 +2339,12 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.7.3"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "5edc29c2ed010d6458d71a83433b383a96a8cbd3efe8531bc90c4b8a5b8bcec9"
+   }
   }
  },
  "nbformat": 4,

From f6379cf7d11fa49c6a420540563c9feecdef5988 Mon Sep 17 00:00:00 2001
From: Sebas <mezgoes3567@hotmail.com>
Date: Tue, 9 Aug 2022 16:40:37 -0500
Subject: [PATCH 6/6] Tarea 5

---
 05 - Iteradores e Iterables/Tarea.py | 177 +++++++++++++++++++++++++++
 1 file changed, 177 insertions(+)
 create mode 100644 05 - Iteradores e Iterables/Tarea.py

diff --git a/05 - Iteradores e Iterables/Tarea.py b/05 - Iteradores e Iterables/Tarea.py
new file mode 100644
index 000000000..40afa32ce
--- /dev/null
+++ b/05 - Iteradores e Iterables/Tarea.py	
@@ -0,0 +1,177 @@
+txt = "Respuesta: "
+line = "----------------------------------------------------------------"
+
+
+def org(qstn, respuesta, var, var2):
+
+    txt = "Respuesta: "
+    line = "----------------------------------------------------------------"
+
+    print(qstn, '\n \n', txt, '\n \n',
+          respuesta, '\n \n', var, '\n \n', var2)
+    '''print(var)
+    print(var2)
+    print(txt, respuesta)'''
+    print(line, '\n')
+
+
+q = '1) A partir de una lista vacía, utilizar un ciclo while para cargar allí números negativos del -15 al -1'
+
+L1 = []
+n = -15
+while n != 0:
+    L1.append(n)
+    n += 1
+org(q, L1, '', '')
+# ---------------------
+
+q = '2) ¿Con un ciclo while sería posible recorrer la lista para imprimir sólo los números pares?'
+L2 = []
+n = 0
+while n != len(L1)-1:
+    if L1[n] % 2 == 0:
+        L2.append(L1[n])
+    n += 1
+org(q, L2, '', '')
+# ---------------------
+
+q = '3) Resolver el punto anterior sin utilizar un ciclo while'
+
+L2_2 = [i for i in L1 if i % 2 == 0]
+
+org(q, L2_2, '', '')
+# ---------------------
+
+q = '4) Utilizar el iterable para recorrer sólo los primeros 3 elementos'
+
+print(q, '\n\n' + txt + '\n')
+for e in L1[:3]:
+    print(e)
+print('\n' + line + '\n')
+# --------------------
+
+q = '5) Utilizar la función **enumerate** para obtener dentro del iterable, tambien el índice al que corresponde el elemento'
+print(q, '\n\n' + txt + '\n')
+print('Index  Elemento')
+for index, el in enumerate(L1):
+    print(index, '     ', el)
+print('\n' + line + '\n')
+# --------------------
+
+q = '6) Dada la siguiente lista de números enteros entre 1 y 20, crear un ciclo donde se completen los valores faltantes: lista = [1,2,5,7,8,10,13,14,15,17,20]'
+lista = [1, 2, 5, 7, 8, 10, 13, 14, 15, 17, 20]
+n = 0
+
+print(q, '\n\n' + txt + '\n\n', 'lista antes = ', lista, '\n\n')
+while n < len(lista)-1:
+    if lista[n] + 1 == lista[n + 1]:
+        # print(lista)
+        # print('Entró al if', lista)
+        n += 1
+        continue
+    else:
+        lista.insert(n+1, lista[n]+1)
+        # print('Entró al else', lista)
+        n += 1
+print('lista despues = ', lista, '\n\n', line + '\n\n')
+# --------------------
+
+q = '7) La sucesión de Fibonacci es un listado de números que sigue la fórmula: \n\n N0 = 0 \n\n N1 = 1 \n\n Ni = Ni-1 + Ni-2 \n\n Crear una lista con los primeros treinta números de la sucesión.'
+
+
+n = 2
+fibonacci = [0, 1]
+while n < 30:
+    fibonacci.append(fibonacci[n-1] + fibonacci[n-2])
+    n += 1
+org(q, fibonacci, '', '')
+# ---------------------
+
+q = '8) Realizar la suma de todos elementos de la lista del punto anterior'
+org(q, sum(fibonacci), '', '')
+# ---------------------
+
+q = '9) La proporción aurea se expresa con una proporción matemática que nace el número irracional Phi= 1,618… que los griegos llamaron número áureo. El cuál se puede aproximar con la sucesión de Fibonacci. Con la lista del ejercicio anterior, imprimir el cociente de los últimos 5 pares de dos números contiguos. Donde i es la cantidad total de elementos: \n\n Ni-1 / Ni \n\n Ni-2 / Ni-1 \n\n Ni-3 / Ni-2 \n\n Ni-4 / Ni-3 \n\n Ni-5 / N'
+primeros = 15
+n = primeros - 5
+aurea = []
+while(n < primeros):
+    aurea.append(fibonacci[n-1]/fibonacci[n])
+    n += 1
+org(q, aurea, '', '')
+# ---------------------
+
+q = '10) A partir de la variable cadena ya dada, mostrar en qué posiciones aparece la letra "n". cadena = "Hola Mundo. Esto es una practica del lenguaje de programación Python"'
+
+cadena = 'Hola Mundo. Esto es una practica del lenguaje de programación Python\n'
+print(q, '\n\n' + txt + '\n\n', cadena)
+for i, e in enumerate(cadena):
+    if e == 'n':
+        print(i)
+print('\n\n' + line + '\n\n')
+# --------------------
+
+q = '11) Crear un diccionario e imprimir sus claves utilizando un iterador'
+
+f1 = {'Nombre': ['Max', 'Lewis', 'Charles',
+                 'Carlos', 'George', 'Lando',
+                 'Daniel', 'Sergio', 'Mick',
+                 'Kevin', 'Sebastian', 'Lance'],
+      'Apellido': ['Verstappen', 'Hamilton', 'Leclerc',
+                   'Sainz', 'Russell', 'Norris',
+                   'Ricciardo', 'Pérez', 'Shumacher',
+                   'Magnussen', 'Vettel', 'Stroll'],
+      'Escudería': ['RedBull', 'Mercedes', 'Ferrari',
+                    'McLaren', 'Hass', 'AstonMartin']
+      }
+llaves = []
+for i in f1:
+    llaves.append(i)
+org(q, llaves, '', '')
+# ---------------------
+
+q = '12) Convertir en una lista la variable "cadena" del punto 10 y luego recorrerla con un iterador'
+print(q)
+print(txt)
+l = list(cadena)
+iterador = iter(l)
+for i in range(0, len(l)):
+    print(next(iterador))
+print(line)
+# ---------------------
+
+q = '13) Crear dos listas y unirlas en una tupla utilizando la función zip'
+
+l1 = [1, 2, 3, 4, 5]
+l2 = ['a', 'b', 'c', 'd', 'e']
+l3 = zip(l1,l2)
+org(q,list(l3),'', '')
+# ---------------------
+
+q = '14) A partir de la siguiente lista de números, crear una nueva sólo si el número es divisible por 7: \nlis = [18,21,29,32,35,42,56,60,63,71,84,90,91,100]'
+
+
+lis = [18,21,29,32,35,42,56,60,63,71,84,90,91,100]
+
+lis2 = [i for i in lis if i % 7 == 0]
+org(q, lis2, '', '')
+# ---------------------
+
+q = '15) A partir de la lista de a continuación, contar la cantidad total de elementos que contiene, teniendo en cuenta que un elemento de la lista podría ser otra lista: lis = [[1,2,3,4],"rojo","verde",[True,False,False],["uno","dos","tres"]]'
+
+lis = [[1,2,3,4],"rojo","verde",[True,False,False],["uno","dos","tres"]]
+m = []
+for e in lis:
+    if type(e) == list:
+        m.append(len(e))
+    else: 
+        m.append(1)
+org(q, 'La cantidad total de elementos es: ', sum(m), '')
+# ---------------------
+
+q = '16) Tomar la lista del punto anterior y convertir cada elemento en una lista si no lo es'
+
+for i, e in enumerate(lis):
+    if type(e) != list:
+        lis[i] = [e]
+org(q, lis, '', '')        
\ No newline at end of file
