├── .gitignore ├── LICENSE ├── README.md ├── bonus └── celebrate_01.py ├── retos ├── _010_dias │ ├── README.md │ ├── dia_01.py │ ├── dia_02.py │ ├── dia_03.py │ ├── dia_04.py │ ├── dia_05.py │ ├── dia_06.py │ ├── dia_07.py │ ├── dia_08.py │ ├── dia_09.py │ └── dia_10.py ├── _020_dias │ ├── README.md │ ├── dia_11.py │ ├── dia_12.py │ ├── dia_13.py │ ├── dia_14.py │ ├── dia_15.py │ ├── dia_16.py │ ├── dia_17.py │ ├── dia_18.py │ ├── dia_19.py │ └── dia_20.py ├── _030_dias │ ├── README.md │ ├── dia_21.py │ ├── dia_22.py │ ├── dia_23.py │ ├── dia_24.py │ ├── dia_25.py │ ├── dia_26.py │ ├── dia_27.py │ ├── dia_28.py │ ├── dia_29.py │ └── dia_30.py ├── _040_dias │ ├── README.md │ ├── dia_31.py │ ├── dia_32.py │ ├── dia_33.py │ ├── dia_34.py │ ├── dia_35.py │ ├── dia_36.py │ ├── dia_37.py │ ├── dia_38.py │ ├── dia_39.py │ └── dia_40.py ├── _050_dias │ ├── README.md │ ├── dia_41.py │ ├── dia_42.py │ ├── dia_43.py │ ├── dia_44.py │ ├── dia_45.py │ ├── dia_46.py │ ├── dia_47.py │ ├── dia_48.py │ ├── dia_49.py │ └── dia_50.py ├── _060_dias │ ├── README.md │ ├── dia_51.py │ ├── dia_52.py │ ├── dia_53.py │ ├── dia_54.py │ ├── dia_55.py │ ├── dia_56.py │ ├── dia_57.py │ ├── dia_58.py │ ├── dia_59.py │ └── dia_60.py ├── _070_dias │ ├── README.md │ ├── dia_61.py │ ├── dia_62.py │ ├── dia_63.py │ ├── dia_64.py │ ├── dia_65.py │ ├── dia_66.py │ ├── dia_67.py │ ├── dia_68.py │ ├── dia_69.py │ └── dia_70.py ├── _080_dias │ ├── README.md │ ├── dia_71.py │ ├── dia_72.py │ ├── dia_73.py │ ├── dia_74.py │ ├── dia_75.py │ ├── dia_76.py │ ├── dia_77.py │ ├── dia_78.py │ ├── dia_79.py │ └── dia_80.py ├── _090_dias │ ├── README.md │ ├── dia_81.py │ ├── dia_82.py │ ├── dia_83.py │ ├── dia_84.py │ ├── dia_85.py │ ├── dia_86.py │ ├── dia_87.py │ ├── dia_88.py │ ├── dia_89.py │ └── dia_90.py └── _100_dias │ ├── README.md │ ├── dia_100.py │ ├── dia_91.py │ ├── dia_92.py │ ├── dia_93.py │ ├── dia_94.py │ ├── dia_95.py │ ├── dia_96.py │ ├── dia_97.py │ ├── dia_98.py │ └── dia_99.py └── soluciones ├── _010_dias ├── dia_01.py ├── dia_02.py ├── dia_03.py ├── dia_04.py ├── dia_05.py ├── dia_06.py ├── dia_07.py ├── dia_08.py ├── dia_09.py └── dia_10.py ├── _020_dias ├── dia_11.py ├── dia_12.py ├── dia_13.py ├── dia_14.py ├── dia_15.py ├── dia_16.py ├── dia_17.py ├── dia_18.py ├── dia_19.py └── dia_20.py ├── _030_dias ├── dia_21.py ├── dia_22.py ├── dia_23.py ├── dia_24.py ├── dia_25.py ├── dia_26.py ├── dia_27.py ├── dia_28.py ├── dia_29.py └── dia_30.py ├── _040_dias ├── dia_31.py ├── dia_32.py ├── dia_33.py ├── dia_34.py ├── dia_35.py ├── dia_36.py ├── dia_37.py ├── dia_38.py ├── dia_39.py └── dia_40.py ├── _050_dias ├── dia_41.py ├── dia_42.py ├── dia_43.py ├── dia_44.py ├── dia_45.py ├── dia_46.py ├── dia_47.py ├── dia_48.py ├── dia_49.py └── dia_50.py ├── _060_dias ├── dia_51.py ├── dia_52.py ├── dia_53.py ├── dia_54.py ├── dia_55.py ├── dia_56.py ├── dia_57.py ├── dia_58.py ├── dia_59.py └── dia_60.py ├── _070_dias ├── dia_61.py ├── dia_62.py ├── dia_63.py ├── dia_64.py ├── dia_65.py ├── dia_66.py ├── dia_67.py ├── dia_68.py ├── dia_69.py └── dia_70.py ├── _080_dias ├── dia_71.py ├── dia_72.py ├── dia_73.py ├── dia_74.py ├── dia_75.py ├── dia_76.py ├── dia_77.py ├── dia_78.py ├── dia_79.py └── dia_80.py ├── _090_dias ├── dia_81.py ├── dia_82.py ├── dia_83.py ├── dia_84.py ├── dia_85.py ├── dia_86.py ├── dia_87.py ├── dia_88.py ├── dia_89.py └── dia_90.py └── _100_dias ├── dia_100.py ├── dia_91.py ├── dia_92.py ├── dia_93.py ├── dia_94.py ├── dia_95.py ├── dia_96.py ├── dia_97.py ├── dia_98.py └── dia_99.py /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/extensions.json 2 | .vscode/settings.json 3 | __pycache__ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 python-la-paz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 100-dias-de-python 2 | 3 | Reto elaborado por la comunidad Python La Paz. 4 | 5 | ## ¿Como usar este repositorio? 6 | 7 | 1. Revisa primero la carpeta de retos. 8 | 2. Verifica el temario para saber que temas de programación involucra cada sección de retos. 9 | 3. Resuelve 1 reto diariamente. 10 | 4. Compara tu respuesta con la solucion en la carpeta de soluciones. 11 | 12 | ## Contributors 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /bonus/celebrate_01.py: -------------------------------------------------------------------------------- 1 | """ 2 | @author Python La Paz 3 | Llevas 33 dias programando te mereces un pastel 4 | Felicidades por seguir en el reto 5 | #100diasdepython 6 | """ 7 | pisos = 3 8 | relleno = 4 * "-" 9 | sabor = " " 10 | decorado = "+\n" 11 | armado = (pisos - 1) * sabor 12 | print(f"{armado} (*)") 13 | print(f"{armado} __|__") 14 | print(f"{armado}| {sabor*2}|") 15 | for i in range(2, pisos + 1): 16 | p = (pisos - i) * sabor 17 | d = f"+-{relleno*i}{decorado}" 18 | s = f"| {sabor*i*2}|" 19 | print(f"{p}{d}{p}{s}") 20 | print(f"+-{pisos*relleno}{decorado}") 21 | """ 22 | Resultado: 23 | (*) 24 | __|__ 25 | | | 26 | +---------+ 27 | | | 28 | +-------------+ 29 | | | 30 | +-------------+ 31 | """ 32 | -------------------------------------------------------------------------------- /retos/_010_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 1 - 10 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Definición de variables. 5 | 2. Manejo de strings. 6 | 3. Uso de la función type(). 7 | 4. Operadores aritméticos. 8 | 5. Funciones de listas. 9 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_01.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 1 de #100diasdepython 3 | El reto de hoy es: 4 | Define una variable numérica e imprime el valor de tu variable 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_02.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 2 de #100diasdepython 3 | El reto de hoy es: 4 | Resta 2 números enteros e imprime el resultado 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_03.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 3 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena que tenga un texto 5 | divertido e imprímela 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_04.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 4 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la función type() para imprimir el tipo de una 5 | variable booleana 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_05.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 5 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una lista de números y encuentra el valor más pequeño 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_06.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 6 de #100diasdepython 3 | El reto de hoy es: 4 | Declara 2 variables de tipo cadena, concaténalas 5 | e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_07.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 7 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable tipo cadena con saltos de línea 5 | e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_08.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 8 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una lista de números e imprime el número de elementos 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_09.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 9 de #100diasdepython 3 | El reto de hoy es: 4 | Evalúa una expresión para ver si un número es mayor que otro 5 | e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_010_dias/dia_10.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 10 de #100diasdepython 3 | El reto de hoy es: 4 | Inicializa 3 variables numérica de forma múltiple e imprime 5 | sus valores en una sola línea 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 11 - 20 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Definición de variables. 5 | 2. Uso de la función id(). 6 | 3. Operadores lógicos. 7 | 4. Slicing en cadenas. 8 | 5. Metodos asociados a strings. 9 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_11.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 11 de #100diasdepython 3 | El reto de hoy es: 4 | Intercambia los valores de dos variables e imprime 5 | de ambas e imprime el resultado en una sola línea 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_12.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 12 de #100diasdepython 3 | El reto de hoy es: 4 | Intercambia los valores de dos variables e imprime su ubicación en memoria 5 | utilizando la función id() 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_13.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 13 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos variables booleanas, evalúa una expresión lógica 5 | usando dos operadores lógicos e imprime el resultado. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_14.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 14 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable mediante una expresión aritmética 5 | usando dos operadores aritméticos e imprime el resultado. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_15.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 15 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena e imprime los últimos tres 5 | carácter de la cadena sin usar ciclos. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_16.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 16 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena e imprime la cantidad de 5 | caracteres de la cadena sin usar ciclos. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_17.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 17 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, encuentra la cantidad 5 | de veces que aparece la letra 'a' 6 | sin usar ciclos e imprime el resultado. 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_18.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 18 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, encuentra el primer y último carácter 5 | en orden lexicográfico sin usar ciclos e imprímelos. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_19.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 19 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, reviértela sin usar 5 | funciones adicionales e imprime el resultado. 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_020_dias/dia_20.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 20 de #100diasdepython 3 | El reto de hoy es: 4 | De la siguiente cadena: 'PpYyTtHhOoNnIiSsTtAa' 5 | Separa las mayúsculas y minúsculas sin usar ciclos en nuevas cadenas 6 | e imprime el resultado en una sola línea 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 21 - 30 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Funciones. 5 | 2. Listas. 6 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_21.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 21 de #100diasdepython 3 | El reto de hoy es: 4 | Encuentra el mensaje secreto en: natyhujkpdfuaeefgdedeas 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_22.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 22 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza funciones de cadenas para crear una lista 5 | de palabras con la siguiente cadena: 6 | "Los pequeños pasos te llevan a algo más grande" 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_23.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 23 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza funciones de cadenas para quitar los 5 | espacios innecesario de la siguiente cadena: 6 | " Python es divertido " 7 | Imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_24.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 24 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de compras e imprime del 2do al 4to elemento 5 | """ 6 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_25.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 25 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior para 5 | construir una cadena con saltos de línea 6 | e imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_26.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 26 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la función copy() para crear una 5 | copia de la lista de compras utilizada en 6 | el reto anterior, compara sus ids en memoria 7 | e imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_27.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 27 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para agregarle un nuevo elemento al final 6 | e imprime la lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_28.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 28 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para remover el primer elemento de la lista 6 | sin usar ciclos e imprime la lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_29.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 29 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para remover el primer elemento de la lista 6 | sin usar ciclos e imprime la lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_030_dias/dia_30.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 30 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de animales y ordénala 5 | alfabéticamente usando funciones de listas 6 | Imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 31 - 40 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Casteo de variables. 5 | 2. Slicing de cadenas. 6 | 3. Diccionarios. 7 | 4. Conjuntos. 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_31.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 31 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos valores booleanos, convierte 5 | una en entero y la otra en cadena 6 | imprime el resultado en una sola línea 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_32.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 32 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos lista, una vacía y otra con 5 | elementos convierte ambas listas en booleanos 6 | Imprime el resultado en una sola línea 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_33.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 33 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una cadena que sea un palíndromo 5 | y verifica que lo sea sin usar 6 | funciones adicionales 7 | Imprime el resultado en una sola línea 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_34.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 34 de #100diasdepython 3 | El reto de hoy es: 4 | Declara un diccionario de 5 palabras 5 | relacionadas a la programación con su definición 6 | Imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_35.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 35 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para agregar una nueva palabra y su 6 | definición, imprime la cantidad de elementos 7 | del diccionario 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_36.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 36 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para eliminar el primer elemento del 6 | diccionario, imprime la cantidad de elementos 7 | del diccionario 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_37.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 37 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para eliminar todos los elemento del 6 | diccionario sin usar ciclos, imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_38.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 38 de #100diasdepython 3 | El reto de hoy es: 4 | Declara un conjunto de 5 animales 5 | e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_39.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 39 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior y verifica 5 | si tienes un gato en el conjunto 6 | Imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_040_dias/dia_40.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 40 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior y elimina 5 | al gato del conjunto, si es que existiera, sin 6 | usar sentencias condicionales e imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_050_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 41 - 50 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Conjuntos. 5 | 2. Tuplas. 6 | 3. Uso de la funcion range para generación de listas. 7 | 4. Estructuras iterativas. 8 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_41.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 41 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior, 5 | define un nuevo conjunto de mascotas, 6 | encuentra la intersección de ambos conjuntos 7 | sin usar ciclos e imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_42.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 42 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza los conjunto del reto anterior, 5 | para encontrar la unión de ambos conjuntos 6 | sin usar ciclos e imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_43.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 43 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una tupla de 5 símbolos que representen 5 | magnitudes físicas e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_44.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 44 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la tupla del ejemplo anterior e imprime 5 | los primeros 3 elementos 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_45.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 45 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la tupla del ejemplo anterior, elimina el 5 | los primeros 2 elementos e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_46.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 46 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de 10 números usando la función 5 | range() e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_47.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 47 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de 5 números pares usando la función 5 | range() e imprime el resultado 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_48.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 48 de #100diasdepython 3 | El reto de hoy es: 4 | Con un rango de 5 números crea una lista 5 | que refleje con valores booleanos cuales 6 | son pares e imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_49.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 49 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable numérica con valor 100 5 | Decrementa su valor de 10 en 10 mientras no sea 0 6 | Imprime el valor de la variable 7 | en cada iteración 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_050_dias/dia_50.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 50 de #100diasdepython 3 | El reto de hoy es: 4 | Genera 5 números enteros de forma aleatoria 5 | Almacena el resultado en una lista 6 | Suma la lista e imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_060_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 51 - 60 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Funciones con parametros. 5 | 2. Funciones lambda. 6 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_51.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 51 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que calcule el volumen de un cilindro 5 | Los parámetros de entrada son base y altura 6 | El valor de salida el el volumen del cilindro 7 | Ejecuta la función para el caso base= 5, altura= 7 8 | Imprime el resultado 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_52.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 52 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que convierta un número entero en binario 5 | sin usar la función bin() 6 | El parámetro de entrada es un número entero 7 | El valor de salida es una cadena del valor 8 | del número en binario 9 | Ejecuta la función para el número 52 10 | Imprime el resultado 11 | """ 12 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_53.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 53 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que reciba una lista de 5 | números y devuelva una lista de los números al cuadrado 6 | Ejecuta la función para la lista [2, 3, 5, 7, 11] 7 | Imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_54.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 54 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que reciba una lista de cadenas y 5 | devuelva un diccionario con la cantidad 6 | de vocales de cada cadena 7 | Ejemplo de entrada: ['Python', 'es', 'cool'] 8 | Ejemplo de salida: {'Python': 1, 'es': 1, 'cool': 2} 9 | Imprime el resultado 10 | """ 11 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_55.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 55 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función recursiva para hacer una 5 | cuenta regresiva a 0 6 | La función tiene como parámetro de entrada un número 7 | Ejecuta la función para el número 5 8 | Imprime el valor de la cuenta en cada iteración 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_56.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 56 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para encontrar la raíz 5 | cuadrada de esta lista de números [49, 4, 36, 16, 25] 6 | Imprime el resultado en nueva lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_57.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 57 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para encontrar los 5 | múltiplos de 3 en la lista de números 6 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 7 | Imprime el resultado en nueva lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_58.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 58 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para sumar las siguientes 5 | listas lista_a = [2, 4, 5] , lista_b = [6, 7, 1] 6 | Imprime el resultado en nueva lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_59.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 59 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para ordenar de forma 5 | ascendente la siguiente lista de tuplas tomando el 6 | valor numérico como referencia 7 | [("Quimica", 88),("Fisica", 90), ("Lenguaje", 97)] 8 | Imprime el resultado 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_060_dias/dia_60.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 60 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para capitalizar las 5 | palabras de la siguiente lista 6 | ["llevo", "sesenta", "dias", "programando","wiii"] 7 | Imprime el resultado en nueva lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 61 - 70 2 | Estos retos aborda el siguiente tema: 3 | 4 | 1. Regex. 5 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_61.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 61 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar que las cadenas de 5 | la lista sean totalmente numéricas 6 | ["20200806", "jun122022", "202204DD", "20221208", "22mar2022"] 7 | Imprime una lista con las cadenas numéricas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_62.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 62 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar la lista de emails 5 | ["pythonlapaz@gmail.com", "dias.com", 6 | "comidita@.com", "programando@outlook.com"] 7 | Imprime una lista con los emails validos 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_63.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 63 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar que las cadenas solo 5 | contengan caracteres alfanuméricos 6 | ["Python3.10", "Python3", "ProgramandoAndo", "jun2022", 7 | "#100diasdecodigo", "Felicidades!"] 8 | Imprime una lista con las cadenas validas 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_64.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 64 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para quitar los ceros innecesarios 5 | de las direcciones IP de la lista 6 | ["192.08.001.5", "10.120.023.001", "192.160.2.1"] 7 | Imprime una lista con las IPs validas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_65.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 65 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para quitar los prefijos telefónicos de los 5 | teléfonos de la siguiente lista 6 | ["+54 11 1234 5678", "+591 68754321", "+56 9 8765 4321"] 7 | Imprime una lista con los teléfonos sin prefijos telefónicos 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_66.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 66 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para eliminar los caracteres que 5 | no sean alfanuméricos en las cadenas de la lista 6 | ["Python3.10", "Python3", "ProgramandoAndo", "jun2022", 7 | "#100diasdecodigo", "Felicidades!"] 8 | Imprime una lista con las cadenas limpias 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_67.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 67 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para cambiar el formato de las fechas 5 | de YYYYMMDD a YYYY-MM-DD de las fechas de la lista 6 | ["20221205", "19930612", "20050126", "20211008"] 7 | Imprime una lista con las fechas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_68.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 68 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para cambiar el formato de las fechas 5 | de YYYY-MM-DD a DDMMYYYY de las fechas de la lista 6 | ['2022-12-05', '1993-06-12', '2005-01-26', '2021-10-08'] 7 | Imprime una lista con las fechas con el nuevo formato 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_69.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 69 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para extraer todas las 'a' seguidas de 5 | una o mas 'b's de la siguiente cadena 6 | 'abholaaaaabaaabbpythonistaaaaaabbbbb' 7 | Imprime una lista con las subcadenas extraídas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_070_dias/dia_70.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 70 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para extraer todas las palabras que 5 | contengan al menos una 'a' en la siguiente cadena 6 | 'Llevas programando 70 días seguidos' 7 | Imprime una lista con las palabras extraídas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS DIA 71 - 80 2 | Estos retos abordan el siguiente tema: 3 | 4 | 1. Uso de del modulo itertools. 5 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_71.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 71 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para generar una serie 5 | de sumas acumuladas con los números de la 6 | siguiente lista [0, 1, 1, 2, 3, 5, 8] 7 | Imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_72.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 72 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener la cantidad de veces que 5 | se repite cada número en la lista 6 | [0, 1, 1, 2, 3, 2, 4, 5, 5, 8, 4] 7 | Imprime el resultado en un diccionario con el formato 8 | {número:cantidad de repeticiones} 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_73.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 73 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener todas las permutaciones 5 | posibles con las letras de la siguiente lista 6 | ["r", "i", "o"] 7 | Imprime el resultado en una lista de tuplas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_74.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 74 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el producto 5 | cartesiano de las siguientes listas 6 | [1, 3, 5] y [2, 4, 6] 7 | Imprime el resultado en una lista de tuplas 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_75.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 75 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el mensaje secreto 5 | en la siguiente cadena "P1y2t3h4o5n6!7" 6 | Imprime el resultado en una cadena 7 | Te dejamos una pista: 8 | [1,0,1,0,1,0,1,0,1,0,1,0,1] 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_76.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 76 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el valor 5 | máximo de cada tupla de la siguiente lista 6 | [(2, 4, 6), (7, 8, 5, 6), (5, 10)] 7 | Imprime el resultado en una lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_77.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 77 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener los 5 | multiplos de 5 de la siguiente lista 6 | [1,5,10,23,3,555,11,10] 7 | Imprime el resultado en una lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_78.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 78 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para unir las siguientes 5 | tuplas (78, 100) ("Dias", "Python") 6 | Obtiene el tipo de cada dato e 7 | imprime el resultado en una lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_79.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 79 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener los elementos 5 | de la siguiente lista hasta que alguno 6 | contenga un "0" 7 | [2, 3, 5, 7, 13, 103, 25, 15, 45] 8 | Imprime el resultado en una lista 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_080_dias/dia_80.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 80 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para repetir el número 80 5 | 5 veces en una lista 6 | Imprime el resultado en una lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_090_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS 81-90 2 | Estos retos abordan el siguiente tema: 3 | 4 | 1. Uso del moduloe datetime. 5 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_81.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 81 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para agregarle a la 5 | fecha actual 7 días más 6 | Imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_82.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 82 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y hora 5 | actual en el formato "10 July 2022, 12:12:12 AM" 6 | Imprime el resultado en una cadena 7 | """ 8 | from datetime import datetime 9 | 10 | fecha = datetime.today() 11 | formato = fecha.strftime("%d %B %Y, %I:%M:%S %p") 12 | print(formato) 13 | # Resultado: 14 | # 10 July 2022, 01:17:44 AM 15 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_83.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 83 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para convertir la fecha 5 | "Jul 11 2022 1:30AM" al formato 6 | "2022-07-11 01:30:00" 7 | Imprime el resultado 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_84.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 84 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para convertir la cadena 5 | "12-07-2022" a timestamp 6 | Imprime el resultado 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_85.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 85 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y 5 | hora actual en UTC 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_86.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 86 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para calcular la cantidad 5 | de segundo que han pasado desde el inicio 6 | del reto considerando solo la fecha 7 | Considera que el reto inicio el "20/04/2022" 8 | Imprime el resultado 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_87.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 87 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para imprimir el mes de 5 | Julio en formato calendario 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_88.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 88 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para imprimir la cantidad 5 | de semanas en cada mes del año 2022 6 | """ 7 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_89.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 89 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para obtener los días lunes 5 | del mes Julio del año 2022 6 | Imprime el resultado en una lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_090_dias/dia_90.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 90 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y hora 5 | en formato de 12 horas ejemplo "2022/07/18 11:30 PM" 6 | Imprime el resultado en una cadena 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_100_dias/README.md: -------------------------------------------------------------------------------- 1 | ## RETOS 81-90 2 | Estos retos abordan los siguientes temas: 3 | 4 | 1. Manejo de excepciones 5 | 2. Uso de la palabra clave yield. 6 | 3. Argumentos arbitrarios. 7 | 4. Argumentos arbitrarios de tipo Keyword. 8 | 5. Uso de modulo timeit. 9 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_100.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 🎉100🎉 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza try para capturar e imprimir la excepción 5 | dentro de la siguiente función y agrega un mensaje 6 | final utilizando finally 7 | En este reto si se aceptan multiples print 8 | """ 9 | 10 | 11 | def dia100(): 12 | mensaje = "Llegaste al último día" 13 | print(mensaje[len(mensaje)]) 14 | 15 | 16 | dia100() 17 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_91.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 91 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que devuelva los cuadrados 5 | de los primeros 10 números enteros iniciando en 1 6 | utilizando yields 7 | Imprime el resultado en una Lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_92.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 92 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use yield y genere la 5 | siguiente serie [1, 2, 3, 2, 1, 2, 3, 2, 1] 6 | Imprime el resultado en una Lista 7 | """ 8 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_93.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 93 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use yield y genere los primeros 5 | 10 números de la serie de Fibonacci 6 | [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 7 | Imprime el resultado en una Lista 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_94.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 94 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | para recibir N-cadenas de nombres y 6 | devuelva una lista de N-saludos 7 | ejemplo de salida ['Hola Katy','Hola Ariel'] 8 | Imprime el resultado en una Lista 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_95.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 95 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | para recibir N-números y determine cual es 6 | el mayor y el menor y los devuelva en un diccionario 7 | en el siguiente formato {"mayor": 5, "menor":-10} 8 | Imprime el resultado 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_96.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 96 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios de tipo 5 | Keyword para recibir nombre, apellido y edad y devuelva 6 | estos argumentos en un diccionario en el siguiente formato 7 | {"nombre": "Pepito", "apellido":"Perez","edad":25} 8 | Imprime el resultado 9 | """ 10 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_97.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 97 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | de tipo Keyword para recibir los 3 lados de un 6 | triángulo y calcule su perímetro 7 | Imprime el resultado en un número de punto flotante 8 | """ 9 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_98.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 98 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza timeit para obtener el tiempo de 5 | ejecución de la siguiente función 6 | Imprime el resultado en una sola línea 7 | """ 8 | 9 | 10 | def lazy(): 11 | suma = 0 12 | for i in range(0, 50000000): 13 | suma += i 14 | -------------------------------------------------------------------------------- /retos/_100_dias/dia_99.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 99 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza try para capturar e imprimir la 5 | excepción de una división entre 0 del siguiente 6 | fragmento de código 7 | """ 8 | a = 7 9 | b = a / 0 10 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_01.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 1 de #100diasdepython 3 | El reto de hoy es: 4 | Define una variable numérica e imprime el valor de tu variable 5 | """ 6 | a = 1234 7 | print(a) 8 | # Resultado: 1234 9 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_02.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 2 de #100diasdepython 3 | El reto de hoy es: 4 | Resta 2 números enteros e imprime el resultado 5 | """ 6 | a = 7 7 | b = 3 8 | c = a - b 9 | print(c) 10 | # Resultado: 4 11 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_03.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 3 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena que tenga un texto 5 | divertido e imprime la variable 6 | """ 7 | frase = "Wiiii python es genial" 8 | print(frase) 9 | # Resultado: Wiiii python es genial 10 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_04.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 4 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la función type() para imprimir el tipo de una 5 | variable booleana 6 | """ 7 | verdad = True 8 | print(type(verdad)) 9 | # Resultado: 10 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_05.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 5 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una lista de números y encuentra el valor más pequeño 5 | """ 6 | edades = [23, 45, 12, 89, 32, 11] 7 | print(min(edades)) 8 | # Resultado: 11 9 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_06.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 6 de #100diasdepython 3 | El reto de hoy es: 4 | Declara 2 variables de tipo cadena, concatena 5 | ambas cadenas e imprime el resultado 6 | """ 7 | cadena_uno = "Python" 8 | cadena_dos = " es genial!" 9 | resultado = cadena_uno + cadena_dos 10 | print(resultado) 11 | # Resultado: Python es genial! 12 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_07.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 7 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable tipo cadena con saltos de línea 5 | e imprime la variable 6 | """ 7 | frase = "Una semana \nwiiiii :3" 8 | print(frase) 9 | # Resultado: 10 | # Una semana 11 | # wiiiii :3 12 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_08.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 8 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una lista de números e imprime el número de elementos 5 | """ 6 | números = [1, 3, 4, 5, 11, 13, 15, 25, 29, 50] 7 | print(len(números)) 8 | # Resultado: 10 9 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_09.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 9 de #100diasdepython 3 | El reto de hoy es: 4 | Evalúa una expresión para ver si un número es mayor que otro 5 | e imprime el resultado 6 | """ 7 | mayor = 5 > 3 8 | print(mayor) 9 | # Resultado: True 10 | -------------------------------------------------------------------------------- /soluciones/_010_dias/dia_10.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 10 de #100diasdepython 3 | El reto de hoy es: 4 | Inicializa 3 variables numérica de forma múltiple e imprime 5 | sus valores en una sola línea 6 | """ 7 | x = y = z = 87 8 | print(x, y, z) 9 | # Resultado: 87 87 87 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_11.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 11 de #100diasdepython 3 | El reto de hoy es: 4 | Intercambia los valores de dos variables e imprime 5 | de ambas e imprime el resultado en una sola línea 6 | """ 7 | a = 11 8 | b = "¿En que día del reto estamos?" 9 | a, b = b, a 10 | print(a, b) 11 | # Resultado: ¿En que día del reto estamos? 11 12 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_12.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 12 de #100diasdepython 3 | El reto de hoy es: 4 | Intercambia los valores de dos variables e imprime su ubicación en memoria 5 | utilizando la función id() 6 | """ 7 | años = 42 8 | edad = "edad" 9 | años, edad = edad, años 10 | print(id(años), id(edad)) 11 | # Resultado: 1722722222704 140710691867584 12 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_13.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 13 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos variables booleanas, evalúa una expresión lógica 5 | usando dos operadores lógicos e imprime el resultado. 6 | """ 7 | verdad = True 8 | falso = False 9 | expresion = not verdad and falso 10 | print(expresion) 11 | # Resultado: False 12 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_14.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 14 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable mediante una expresión aritmética 5 | usando dos operadores aritméticos e imprime el resultado. 6 | """ 7 | a = 2 ** 3 - 3 8 | print(a) 9 | # Resultado: 5 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_15.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 15 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena e imprime los últimos tres 5 | carácter de la cadena sin usar ciclos. 6 | """ 7 | cadena = "Python es Cool!" 8 | print(cadena[-3:]) 9 | # Resultado: ol! 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_16.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 16 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena e imprime la cantidad de 5 | caracteres de la cadena sin usar ciclos. 6 | """ 7 | cadena = "Python es Cool!" 8 | print(len(cadena)) 9 | # Resultado: 15 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_17.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 17 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, encuentra la cantidad 5 | de veces que aparece la letra 'a' 6 | sin usar ciclos e imprime el resultado. 7 | """ 8 | cadena = "Programando ando en Python" 9 | print(cadena.count("a")) 10 | # Resultado: 3 11 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_18.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 18 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, encuentra el primer y último carácter 5 | en orden lexicográfico sin usar ciclos e imprime la variable. 6 | """ 7 | cadena = "pythonista" 8 | print(min(cadena) + max(cadena)) 9 | # Resultado: ay 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_19.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 19 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable de tipo cadena, revierte la cadena sin usar 5 | funciones adicionales e imprime el resultado. 6 | """ 7 | cadena = "pythonista" 8 | print(cadena[::-1]) 9 | # Resultado: atsinohtyp 10 | -------------------------------------------------------------------------------- /soluciones/_020_dias/dia_20.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 20 de #100diasdepython 3 | El reto de hoy es: 4 | De la siguiente cadena: 'PpYyTtHhOoNnIiSsTtAa' 5 | Separa las mayúsculas y minúsculas, sin usar ciclos, en nuevas cadenas 6 | e imprime el resultado en una sola línea 7 | """ 8 | cadena = "PpYyTtHhOoNnIiSsTtAa" 9 | mayusculas = cadena[::2] 10 | minusculas = cadena[1::2] 11 | print(mayusculas, minusculas) 12 | # Resultado: PYTHONISTA pythonista 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_21.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 21 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza lo aprendido en el reto anterior para encontrar 5 | el mensaje escondido en: 6 | hjfacetiluzislcafiesdolavedfiedesno 7 | """ 8 | cadena = "hjfacetiluzislcafiesdolavedfiedesno" 9 | mensaje = cadena[2::3] 10 | print(mensaje) 11 | # Resultado: felicidades 12 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_22.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 22 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza funciones de cadenas para crear una lista 5 | de palabras con la siguiente cadena: 6 | "Los pequeños pasos te llevan a algo más grande" 7 | """ 8 | cadena = "Los pequeños pasos te llevan a algo más grande" 9 | lista_palabras = cadena.split() 10 | print(lista_palabras) 11 | # Resultado: 12 | # ['Los', 'pequeños', 'pasos', 'te', 'llevan', 'a', 'algo', 'más', 'grande'] 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_23.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 23 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza funciones de cadenas para quitar los 5 | espacios innecesario de la siguiente cadena: 6 | " Python es divertido " 7 | Imprime el resultado 8 | """ 9 | cadena = " Python es divertido " 10 | limpia = cadena.strip() 11 | print(limpia) 12 | # Resultado: Python es divertido 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_24.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 24 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de compras e imprime 5 | del 2do al 4to elemento 6 | """ 7 | compras = ["Leche", "Huevos", "Pan", "Carne", "Arroz"] 8 | print(compras[1:4]) 9 | # Resultado: ['Huevos', 'Pan', 'Carne'] 10 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_25.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 25 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior para 5 | construir una cadena con saltos de línea 6 | sin usar ciclos e imprime el resultado 7 | """ 8 | compras = ["Leche", "Huevos", "Pan", "Carne", "Arroz"] 9 | cadena = "\n".join(compras) 10 | print(cadena) 11 | # Resultado: 12 | # Leche 13 | # Huevos 14 | # Pan 15 | # Carne 16 | # Arroz 17 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_26.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 26 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la función copy() para crear una 5 | copia de la lista de compras utilizada en 6 | el reto anterior, compara sus ids en memoria 7 | e imprime el resultado 8 | """ 9 | compras = ["Leche", "Huevos", "Pan", "Carne", "Arroz"] 10 | copia_compras = compras.copy() 11 | print(id(compras) == id(copia_compras)) 12 | # Resultado: False 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_27.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 27 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para agregarle un nuevo elemento al final 6 | e imprime la lista 7 | """ 8 | compras = ["Leche", "Huevos", "Pan", "Carne", "Arroz"] 9 | compras.append("Harina") 10 | print(compras) 11 | # Resultado: 12 | # ['Leche', 'Huevos', 'Pan', 'Carne', 'Arroz', 'Harina'] 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_28.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 28 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para remover el primer elemento de la lista 6 | sin usar ciclos e imprime la lista 7 | """ 8 | compras = ["Leche", "Huevos", "Pan", "Carne", "Arroz", "Harina"] 9 | compras.pop(0) 10 | print(compras) 11 | # Resultado: 12 | # ['Huevos', 'Pan', 'Carne', 'Arroz', 'Harina'] 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_29.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 29 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza la lista de compras del reto anterior 5 | para remover todos los elementos de la lista 6 | usando una función de listas 7 | e imprime el resultado 8 | """ 9 | compras = ["Huevos", "Pan", "Carne", "Arroz", "Harina"] 10 | compras.clear() 11 | print(compras) 12 | # Resultado:[] 13 | -------------------------------------------------------------------------------- /soluciones/_030_dias/dia_30.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 30 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de animales y ordena la lista 5 | alfabéticamente usando funciones de listas 6 | Imprime el resultado 7 | """ 8 | compras = ["perro", "gato", "elefante", "calamar"] 9 | compras.sort() 10 | print(compras) 11 | # Resultado:['calamar', 'elefante', 'gato', 'perro'] 12 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_31.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 31 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos valores booleanos, convierte 5 | una en entero y la otra en cadena 6 | imprime el resultado en una sola línea 7 | """ 8 | a = True 9 | b = False 10 | c, d = int(a), str(b) 11 | print(c, d) 12 | # Resultado:1 False 13 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_32.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 32 de #100diasdepython 3 | El reto de hoy es: 4 | Declara dos lista, una vacía y otra con 5 | elementos convierte ambas listas en booleanos 6 | Imprime el resultado en una sola línea 7 | """ 8 | lista_a = list() 9 | lista_b = list([1, 2, 3, 4, 5]) 10 | a, b = bool(lista_a), bool(lista_b) 11 | print(a, b) 12 | # Resultado:False True 13 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_33.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 33 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una cadena que sea un palíndromo 5 | y verifica que lo sea sin usar 6 | funciones adicionales 7 | Imprime el resultado en una sola línea 8 | """ 9 | palabra = "reconocer" 10 | palabra_revertida = palabra[::-1] 11 | palindromo = palabra == palabra_revertida 12 | print(palindromo) 13 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_34.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 34 de #100diasdepython 3 | El reto de hoy es: 4 | Declara un diccionario de 5 palabras 5 | relacionadas a la programación con su definición 6 | Imprime el resultado 7 | """ 8 | palabras = { 9 | "programacion": "la programación es la creación de software", 10 | "python": "lenguaje de programación multiparadigma", 11 | "html": "lenguaje estándar de marcado de etiquetas", 12 | "css": "hojas de estilo en cascada", 13 | "flask": "framework de python", 14 | } 15 | print(type(palabras)) 16 | """ 17 | Resultado: 18 | {"programacion": "la programación es la creación de software", 19 | "python": "lenguaje de programación multiparadigma", 20 | "html": "lenguaje estándar de marcado de etiquetas", 21 | "css": "hojas de estilo en cascada", 22 | "flask": "framework de python"} 23 | """ 24 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_35.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 35 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para agregar una nueva palabra y su 6 | definición, imprime la cantidad de elementos 7 | del diccionario 8 | """ 9 | palabras = { 10 | "programacion": "la programación es la creación de software", 11 | "python": "lenguaje de programación multiparadigma", 12 | "html": "lenguaje estándar de marcado de etiquetas", 13 | "css": "hojas de estilo en cascada", 14 | "flask": "framework de python", 15 | } 16 | palabras["api"] = "interfaz de programación de aplicaciones" 17 | print(len(palabras)) 18 | # Resultado: 6 19 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_36.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 36 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para eliminar el primer elemento del 6 | diccionario, imprime la cantidad de elementos 7 | del diccionario 8 | """ 9 | palabras = { 10 | "programacion": "la programación es la creación de software", 11 | "python": "lenguaje de programación multiparadigma", 12 | "html": "lenguaje estándar de marcado de etiquetas", 13 | "css": "hojas de estilo en cascada", 14 | "flask": "framework de python", 15 | "api": "interfaz de programación de aplicaciones", 16 | } 17 | palabras.pop("programacion") 18 | print(len(palabras)) 19 | # Resultado: 5 20 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_37.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 37 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el diccionario de palabras del reto 5 | anterior para eliminar todos los elemento del 6 | diccionario sin usar ciclos, imprime el resultado 7 | """ 8 | palabras = { 9 | "python": "lenguaje de programación multiparadigma", 10 | "html": "lenguaje estándar de marcado de etiquetas", 11 | "css": "hojas de estilo en cascada", 12 | "flask": "framework de python", 13 | "api": "interfaz de programación de aplicaciones", 14 | } 15 | palabras.clear() 16 | print(palabras) 17 | # Resultado: {} 18 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_38.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 38 de #100diasdepython 3 | El reto de hoy es: 4 | Declara un conjunto de 5 animales 5 | e imprime el resultado 6 | """ 7 | animales = {"perro", "gato", "pájaro", "león", "tigre"} 8 | print(animales) 9 | # Resultado: {'perro', 'gato', 'pájaro', 'león', 'tigre'} 10 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_39.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 39 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior y verifica 5 | si tienes un gato en el conjunto 6 | Imprime el resultado 7 | """ 8 | animales = {"perro", "gato", "pájaro", "león", "tigre"} 9 | print("gato" in animales) 10 | # Resultado: True 11 | -------------------------------------------------------------------------------- /soluciones/_040_dias/dia_40.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 40 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior y elimina 5 | al gato del conjunto, si es que existiera, sin 6 | usar sentencias condicionales e imprime el resultado 7 | """ 8 | animales = {"perro", "gato", "pájaro", "león", "tigre"} 9 | animales.discard("gato") 10 | print(animales) 11 | # Resultado: {'pájaro', 'tigre', 'perro', 'león'} 12 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_41.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 41 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza el conjunto del reto anterior, 5 | define un nuevo conjunto de mascotas, 6 | encuentra la intersección de ambos conjuntos 7 | sin usar ciclos e imprime el resultado 8 | """ 9 | animales = {"perro", "pájaro", "león", "tigre"} 10 | mascotas = {"perro", "gato"} 11 | interseccion = animales.intersection(mascotas) 12 | print(interseccion) 13 | # Resultado: {'perro'} 14 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_42.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 42 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza los conjunto del reto anterior, 5 | para encontrar la unión de ambos conjuntos 6 | sin usar ciclos e imprime el resultado 7 | """ 8 | animales = {"perro", "pájaro", "león", "tigre"} 9 | mascotas = {"perro", "gato"} 10 | union = animales.union(mascotas) 11 | print(union) 12 | # Resultado: {'león', 'tigre', 'perro', 'gato', 'pájaro'} 13 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_43.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 43 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una tupla de 5 símbolos que representen 5 | magnitudes físicas e imprime el resultado 6 | """ 7 | magnitudes = ("kg", "m", "s", "L", "Hz") 8 | print(magnitudes) 9 | # Resultado: ('kg', 'm', 's', 'L', 'Hz') 10 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_44.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 44 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la tupla del ejemplo anterior e imprime 5 | los primeros 3 elementos 6 | """ 7 | magnitudes = ("kg", "m", "s", "L", "Hz") 8 | print(magnitudes[:3]) 9 | # Resultado: ('kg', 'm', 's') 10 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_45.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 45 de #100diasdepython 3 | El reto de hoy es: 4 | Usa la tupla del ejemplo anterior, elimina el 5 | los primeros 2 elementos e imprime el resultado 6 | """ 7 | magnitudes = ("kg", "m", "s", "L", "Hz") 8 | magnitudes = magnitudes[2:] 9 | print(magnitudes) 10 | # Resultado: ('s', 'L', 'Hz') 11 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_46.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 46 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de 10 números usando la función 5 | range() e imprime el resultado 6 | """ 7 | pares = list(range(0, 10)) 8 | print(pares) 9 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_47.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 47 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una lista de 5 números pares usando la función 5 | range() e imprime el resultado 6 | """ 7 | pares = list(range(2, 11, 2)) 8 | print(pares) 9 | # Resultado: [2, 4, 6, 8, 10] 10 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_48.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 48 de #100diasdepython 3 | El reto de hoy es: 4 | Con un rango de 5 números crea una lista 5 | que refleje con valores booleanos cuales 6 | son pares e imprime el resultado 7 | """ 8 | lista_pares = [] 9 | for n in range(5): 10 | if n % 2 == 0: 11 | lista_pares.append(True) 12 | else: 13 | lista_pares.append(False) 14 | print(lista_pares) 15 | # Resultado: 16 | # [True, False, True, False, True] 17 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_49.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 49 de #100diasdepython 3 | El reto de hoy es: 4 | Declara una variable numérica con valor 100 5 | Decrementa su valor de 10 en 10 mientras no sea 0 6 | Imprime el valor de la variable 7 | en cada iteración 8 | """ 9 | a = 100 10 | while a > 0: 11 | print(a) 12 | a -= 10 13 | # Resultado: 14 | # 100 15 | # 90 16 | # 80 17 | # 70 18 | # 60 19 | # 50 20 | # 40 21 | # 30 22 | # 20 23 | # 10 24 | -------------------------------------------------------------------------------- /soluciones/_050_dias/dia_50.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 50 de #100diasdepython 3 | El reto de hoy es: 4 | Genera 5 números enteros de forma aleatoria 5 | Almacena el resultado en una lista 6 | Suma la lista e imprime el resultado 7 | """ 8 | import random 9 | 10 | lista_random = [random.randint(0, 100) for i in range(5)] 11 | suma_random = sum(lista_random) 12 | print(suma_random) 13 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_51.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 51 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que calcule el volumen de un cilindro 5 | Los parámetros de entrada son base y altura 6 | El valor de salida el el volumen del cilindro 7 | Ejecuta la función para el caso base= 5, altura= 7 8 | Imprime el resultado 9 | """ 10 | from math import pi 11 | 12 | 13 | def volumen_cilindro(base: float, altura: float): 14 | """ 15 | Función que calcula el volumen de un cilindro 16 | Args: 17 | base (float): diámetro del cilindro 18 | altura (float): altura del cilindro 19 | 20 | Returns: 21 | float: volumen calculado del cilindro 22 | """ 23 | radio = base / 2 24 | volumen = pi * (radio**2) * altura 25 | return volumen 26 | 27 | 28 | volumen = volumen_cilindro(5, 7) 29 | print(volumen) 30 | # Resultado: 137.44467859455347 31 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_52.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 52 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que convierta un número entero en binario 5 | sin usar la función bin() 6 | El parámetro de entrada es un número entero 7 | El valor de salida es una cadena del valor 8 | del número en binario 9 | Ejecuta la función para el número 52 10 | Imprime el resultado 11 | """ 12 | 13 | 14 | def binario(num: int): 15 | """ 16 | Convierte un número entero en binario 17 | 18 | Args: 19 | num (int): número entero a convertir 20 | 21 | Returns: 22 | str: valor del número en binario 23 | """ 24 | if num <= 0: 25 | return "0" 26 | binario = "" 27 | while num > 0: 28 | residuo = int(num % 2) 29 | num = int(num / 2) 30 | binario = str(residuo) + binario 31 | return binario 32 | 33 | 34 | print(binario(52)) 35 | # Resultado: 110100 36 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_53.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 53 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que reciba una lista de 5 | números y devuelva una lista de los números al cuadrado 6 | Ejecuta la función para la lista [2, 3, 5, 7, 11] 7 | Imprime el resultado 8 | """ 9 | 10 | 11 | def cuadrados(números: list): 12 | """ 13 | Función que eleva al cuadrado cada número de la lista 14 | Args: 15 | números (list): lista de números 16 | Returns: 17 | list: lista de números 18 | """ 19 | cuadrados = [n**2 for n in números] 20 | return cuadrados 21 | 22 | 23 | lista = [2, 3, 5, 7, 11] 24 | print(cuadrados(lista)) 25 | # Resultado: [4, 9, 25, 49, 121] 26 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_54.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 54 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que reciba una lista de cadenas y 5 | devuelva un diccionario con la cantidad 6 | de vocales de cada cadena 7 | Ejemplo de entrada: ['Python', 'es', 'cool'] 8 | Ejemplo de salida: {'Python': 1, 'es': 1, 'cool': 2} 9 | Imprime el resultado 10 | """ 11 | 12 | 13 | def vocales(cadenas: list): 14 | """ 15 | Función que cuenta la cantidad de vocales en una lista de cadenas 16 | 17 | Args: 18 | cadenas (list): lista de cadenas 19 | 20 | Returns: 21 | dict: diccionario con la cantidad de vocales de cada cadena 22 | """ 23 | salida = {} 24 | cadenas = [c.lower() for c in cadenas] 25 | for cadena in cadenas: 26 | contador = 0 27 | for vocal in "aeiou": 28 | contador += cadena.count(vocal) 29 | salida[cadena] = contador 30 | return salida 31 | 32 | 33 | ejemplo = ["Python", "es", "cool"] 34 | print(vocales(ejemplo)) 35 | # Resultado: {'Python': 1, 'es': 1, 'cool': 2} 36 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_55.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 55 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función recursiva para hacer una 5 | cuenta regresiva a 0 6 | La función tiene como parámetro de entrada un número 7 | Ejecuta la función para el número 5 8 | Imprime el valor de la cuenta en cada iteración 9 | """ 10 | 11 | 12 | def atras(num: int): 13 | """ 14 | Función para hacer una cuenta regresiva 15 | 16 | Args: 17 | num (int): inicio de la cuenta atrás 18 | """ 19 | print(num) 20 | num = num - 1 21 | if num >= 0: 22 | atras(num) 23 | pass 24 | 25 | 26 | atras(5) 27 | # Resultado: 28 | # 5 29 | # 4 30 | # 3 31 | # 2 32 | # 1 33 | # 0 34 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_56.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 56 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para encontrar la raíz 5 | cuadrada de esta lista de números [49, 4, 36, 16, 25] 6 | Imprime el resultado en nueva lista 7 | """ 8 | from math import sqrt 9 | 10 | 11 | números = [49, 4, 36, 16, 25] 12 | cuadrados = list(map(lambda x: sqrt(x), números)) 13 | print(cuadrados) 14 | # Resultado: [7.0, 2.0, 6.0, 4.0, 5.0] 15 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_57.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 57 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para encontrar los 5 | múltiplos de 3 en la lista de números 6 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 7 | Imprime el resultado en nueva lista 8 | """ 9 | 10 | lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 11 | multiplos = list(filter(lambda x: x % 3 == 0, lista)) 12 | print(multiplos) 13 | # Resultado: [3, 6, 9] 14 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_58.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 58 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para sumar las siguientes 5 | listas lista_a = [2, 4, 5] , lista_b = [6, 7, 1] 6 | Imprime el resultado en nueva lista 7 | """ 8 | 9 | lista_a = [2, 4, 5] 10 | lista_b = [6, 7, 1] 11 | suma = list(map(lambda x, y: x + y, lista_a, lista_b)) 12 | print(suma) 13 | # Resultado: [8, 11, 6] 14 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_59.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 59 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para ordenar de forma 5 | ascendente la siguiente lista de tuplas tomando el 6 | valor numérico como referencia 7 | [("Quimica", 88),("Fisica", 90), ("Lenguaje", 97)] 8 | Imprime el resultado 9 | """ 10 | notas = [("Quimica", 88), ("Fisica", 90), ("Lenguaje", 97)] 11 | notas.sort(key=lambda x: x[1]) 12 | print(notas) 13 | -------------------------------------------------------------------------------- /soluciones/_060_dias/dia_60.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 60 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza una función lambda para capitalizar las 5 | palabras de la siguiente lista 6 | ["llevo", "sesenta", "dias", "programando","wiii"] 7 | Imprime el resultado en nueva lista 8 | """ 9 | cadenas = ["llevo", "sesenta", "dias", "programando", "wiii"] 10 | cadenas = list(map(lambda x: x.capitalize(), cadenas)) 11 | print(cadenas) 12 | # Resultado: ['Llevo', 'Sesenta', 'Dias', 'Programando', 'Wiii'] 13 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_61.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 61 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar que las cadenas de 5 | la lista sean totalmente numéricas 6 | ["20200806", "jun122022", "202204DD", "20221208", "22mar2022"] 7 | Imprime una lista con las cadenas numéricas 8 | """ 9 | import re 10 | 11 | correos = ["20200806", "jun122022", "202204DD", "20221208", "22mar2022"] 12 | patron = r"[\d]{8}" 13 | validos = [c for c in correos if re.search(patron, c)] 14 | print(validos) 15 | # Resultado: ['20200806', '20221208'] 16 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_62.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 62 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar la lista de emails 5 | ["pythonlapaz@gmail.com", "dias.com", 6 | "comidita@.com", "programando@outlook.com"] 7 | Imprime una lista con los emails validos 8 | """ 9 | import re 10 | 11 | correos = [ 12 | "pythonlapaz@gmail.com", 13 | "dias.com", 14 | "comidita@.com", 15 | "programando@outlook.com", 16 | ] 17 | patron = r"^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$" 18 | validos = [c for c in correos if re.search(patron, c)] 19 | print(validos) 20 | # Resultado: ['pythonlapaz@gmail.com', 'programando@outlook.com'] 21 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_63.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 63 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para validar que las cadenas solo 5 | contengan caracteres alfanuméricos 6 | ["Python3.10", "Python3", "ProgramandoAndo", "jun2022", 7 | "#100diasdecodigo", "Felicidades!"] 8 | Imprime una lista con las cadenas validas 9 | """ 10 | import re 11 | 12 | correos = [ 13 | "Python3.10", 14 | "Python3", 15 | "ProgramandoAndo", 16 | "jun2022", 17 | "#100diasdecodigo", 18 | "Felicidades!", 19 | ] 20 | patron = r"^[a-zA-Z0-9_]+$" 21 | validos = [c for c in correos if re.search(patron, c)] 22 | print(validos) 23 | # Resultado: ['Python3', 'ProgramandoAndo', 'jun2022'] 24 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_64.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 64 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para quitar los ceros innecesarios 5 | de las direcciones IP de la lista 6 | ["192.08.001.5", "10.120.023.001", "192.160.2.1"] 7 | Imprime una lista con las IPs validas 8 | """ 9 | import re 10 | 11 | ips = ["192.08.001.5", "10.120.023.001", "192.160.2.1"] 12 | validos = [re.sub(r"\.[0]*", ".", ip) for ip in ips] 13 | print(validos) 14 | # Resultado: ['192.8.1.5', '10.120.23.1', '192.160.2.1'] 15 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_65.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 65 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para quitar los prefijos telefónicos de los 5 | teléfonos de la siguiente lista 6 | ["+54 11 1234 5678", "+591 68754321", "+56 9 8765 4321"] 7 | Imprime una lista con los teléfonos sin prefijos telefónicos 8 | """ 9 | import re 10 | 11 | phones = ["+54 11 1234 5678", "+591 68754321", "+56 9 8765 4321"] 12 | limpio = [re.sub(r"\+[0-9]* ", "", ip) for ip in phones] 13 | print(limpio) 14 | # Resultado: ['11 1234 5678', '68754321', '9 8765 4321'] 15 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_66.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 66 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para eliminar los caracteres que 5 | no sean alfanuméricos en las cadenas de la lista 6 | ["Python3.10", "Python3", "ProgramandoAndo", "jun2022", 7 | "#100diasdecodigo", "Felicidades!"] 8 | Imprime una lista con las cadenas limpias 9 | """ 10 | import re 11 | 12 | cadenas = [ 13 | "Python3.10", 14 | "Python3", 15 | "ProgramandoAndo", 16 | "jun2022", 17 | "#100diasdecodigo", 18 | "Felicidades!", 19 | ] 20 | validos = [re.sub(r"[^A-Za-z0-9]+", "", c) for c in cadenas] 21 | print(validos) 22 | # Resultado: 23 | # ['Python310', 'Python3', 'ProgramandoAndo', 'jun2022', '100diasdecodigo', 'Felicidades'] 24 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_67.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 67 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para cambiar el formato de las fechas 5 | de YYYYMMDD a YYYY-MM-DD de las fechas de la lista 6 | ["20221205", "19930612", "20050126", "20211008"] 7 | Imprime una lista con las fechas 8 | """ 9 | import re 10 | 11 | fechas = ["20221205", "19930612", "20050126", "20211008"] 12 | valido = [re.sub(r"(\d{4})(\d{1,2})(\d{1,2})", r"\1-\2-\3", f) for f in fechas] 13 | print(valido) 14 | # Resultado: 15 | # ['2022-12-05', '1993-06-12', '2005-01-26', '2021-10-08'] 16 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_68.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 68 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para cambiar el formato de las fechas 5 | de YYYY-MM-DD a DDMMYYYY de las fechas de la lista 6 | ['2022-12-05', '1993-06-12', '2005-01-26', '2021-10-08'] 7 | Imprime una lista con las fechas con el nuevo formato 8 | """ 9 | import re 10 | 11 | fechas = ["2022-12-05", "1993-06-12", "2005-01-26", "2021-10-08"] 12 | patron = r"(\d{4})-(\d{2})-(\d{2})" 13 | reemplazo = r"\3\2\1" 14 | validos = [re.sub(patron, reemplazo, f) for f in fechas] 15 | print(validos) 16 | # Resultado: 17 | # ['05122022', '12061993', '26012005', '08102021'] 18 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_69.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 69 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para extraer todas las 'a' seguidas de 5 | una o mas 'b's de la siguiente cadena 6 | 'abholaaaaabaaabbpythonistaaaaaabbbbb' 7 | Imprime una lista con las subcadenas extraídas 8 | """ 9 | import re 10 | 11 | cadena = "abholaaaaabaaabbpythonistaaaaaabbbbb" 12 | patron = r"a+b?" 13 | subcadenas = re.findall(patron, cadena) 14 | print(subcadenas) 15 | # Resultado: 16 | # ['ab', 'aaaaab', 'aaab', 'aaaaaab'] 17 | -------------------------------------------------------------------------------- /soluciones/_070_dias/dia_70.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 70 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza Regex para extraer todas las palabras que 5 | contengan al menos una 'a' en la siguiente cadena 6 | 'Llevas programando 70 días seguidos' 7 | Imprime una lista con las palabras extraídas 8 | """ 9 | import re 10 | 11 | cadena = "Llevas programando 70 dias seguidos" 12 | patron = r"\w*a.\w*" 13 | subcadenas = re.findall(patron, cadena) 14 | print(subcadenas) 15 | # Resultado: 16 | # ['Llevas', 'programando', 'dias'] 17 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_71.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 71 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para generar una serie 5 | de sumas acumuladas con los números de la 6 | siguiente lista [0, 1, 1, 2, 3, 5, 8] 7 | Imprime el resultado 8 | """ 9 | import itertools 10 | 11 | data = [0, 1, 1, 2, 3, 5, 8] 12 | print(list(itertools.accumulate(data))) 13 | # Resultado: 14 | # [0, 1, 2, 4, 7, 12, 20] 15 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_72.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 72 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener la cantidad de veces que 5 | se repite cada número en la lista 6 | [0, 1, 1, 2, 3, 2, 4, 5, 5, 8, 4] 7 | Imprime el resultado en un diccionario con el formato 8 | {número:cantidad de repeticiones} 9 | """ 10 | import itertools 11 | 12 | data = [0, 1, 1, 2, 3, 2, 4, 5, 5, 8, 4] 13 | resultado = {} 14 | data = sorted(data) 15 | for k, g in itertools.groupby(data): 16 | resultado[k] = len(list(g)) 17 | print(resultado) 18 | # Resultado: 19 | # {0: 1, 1: 2, 2: 2, 3: 1, 4: 2, 5: 2, 8: 1} 20 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_73.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 73 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener todas las permutaciones 5 | posibles con las letras de la siguiente lista 6 | ["r", "i", "o"] 7 | Imprime el resultado en una lista de tuplas 8 | """ 9 | import itertools 10 | 11 | data = ["r", "i", "o"] 12 | resultado = list(itertools.permutations(data)) 13 | print(resultado) 14 | # Resultado: 15 | # [ 16 | # ("r", "i", "o"), 17 | # ("r", "o", "i"), 18 | # ("i", "r", "o"), 19 | # ("i", "o", "r"), 20 | # ("o", "r", "i"), 21 | # ("o", "i", "r"), 22 | # ] 23 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_74.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 74 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el producto 5 | cartesiano de las siguientes listas 6 | [1, 3, 5] y [2, 4, 6] 7 | Imprime el resultado en una lista de tuplas 8 | """ 9 | import itertools 10 | 11 | lista_a, lista_b = [1, 3, 5], [2, 4, 6] 12 | producto = itertools.product(lista_a, lista_b) 13 | resultado = list(producto) 14 | print(resultado) 15 | # Resultado: 16 | # [(1, 2), (1, 4), (1, 6), 17 | # (3, 2), (3, 4), (3, 6), 18 | # (5, 2), (5, 4), (5, 6)] 19 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_75.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 75 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el mensaje secreto 5 | en la siguiente cadena "P1y2t3h4o5n6!7" 6 | Imprime el resultado en una cadena 7 | Te dejamos una pista: 8 | [1,0,1,0,1,0,1,0,1,0,1,0,1] 9 | """ 10 | import itertools 11 | 12 | cadena = "P1y2t3h4o5n6!7" 13 | selector = [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] 14 | print("".join(itertools.compress(cadena, selector))) 15 | # Resultado: Python! 16 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_76.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 76 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener el valor 5 | máximo de cada tupla de la siguiente lista 6 | [(2, 4, 6), (7, 8, 5, 6), (5, 10)] 7 | Imprime el resultado en una lista 8 | """ 9 | import itertools 10 | 11 | lista = [(2, 4, 6), (7, 8, 5, 6), (5, 10)] 12 | resultado = list(itertools.starmap(max, lista)) 13 | print(resultado) 14 | # Resultado: [6, 8, 10] 15 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_77.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 77 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener los 5 | múltiplos de 5 de la siguiente lista 6 | [1,5,10,23,3,555,11,10] 7 | Imprime el resultado en una lista 8 | """ 9 | import itertools 10 | 11 | lista = [1, 5, 10, 23, 3, 555, 11, 10] 12 | predicado = lambda x: x % 5 != 0 13 | multiplos = list(itertools.filterfalse(predicado, lista)) 14 | print(multiplos) 15 | # Resultado: [5, 10, 555, 10] 16 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_78.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 78 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para unir las siguientes 5 | tuplas (78, 100) ("Dias", "Python") 6 | Obtiene el tipo de cada dato e 7 | imprime el resultado en una lista 8 | """ 9 | import itertools 10 | 11 | números = (78, 100) 12 | cadenas = ("Dias", "Python") 13 | lista = itertools.chain(números, cadenas) 14 | resultado = [type(x) for x in lista] 15 | print(resultado) 16 | # Resultado: 17 | # [, , 18 | # , ] 19 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_79.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 79 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para obtener los elementos 5 | de la siguiente lista hasta que alguno 6 | contenga un "0" 7 | [2, 3, 5, 7, 13, 103, 25, 15, 45] 8 | Imprime el resultado en una lista 9 | """ 10 | import itertools 11 | 12 | lista = [[[[[2, 3, 5, 7, 13, 103, 25, 15, 45]]]]] 13 | predicado = lambda x: "0" not in str(x) 14 | resultado = list(itertools.takewhile(predicado, lista)) 15 | print(resultado) 16 | # Resultado: 17 | # [2, 3, 5, 7, 13] 18 | -------------------------------------------------------------------------------- /soluciones/_080_dias/dia_80.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 80 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza itertools para repetir el número 80 5 | 5 veces en una lista 6 | Imprime el resultado en una lista 7 | """ 8 | import itertools 9 | 10 | lista = list(itertools.repeat(80, 5)) 11 | print(lista) 12 | # Resultado: 13 | # [80, 80, 80, 80, 80] 14 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_81.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 81 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para agregarle a la 5 | fecha actual 7 días más 6 | Imprime el resultado 7 | """ 8 | from datetime import datetime, timedelta 9 | 10 | fecha = datetime.today() 11 | fecha_futuro = fecha + timedelta(days=7) 12 | print(fecha_futuro) 13 | # Resultado: 14 | # 2022-07-16 00:08:34.008387 15 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_82.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 82 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y hora 5 | actual en el formato "10 July 2022, 12:12:12 AM" 6 | Imprime el resultado en una cadena 7 | """ 8 | from datetime import datetime 9 | 10 | fecha = datetime.today() 11 | formato = fecha.strftime("%d %B %Y, %I:%M:%S %p") 12 | print(formato) 13 | # Resultado: 14 | # 10 July 2022, 01:17:44 AM 15 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_83.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 83 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para convertir la fecha 5 | "Jul 11 2022 1:30AM" al formato 6 | "2022-07-11 01:30:00" 7 | Imprime el resultado 8 | """ 9 | from datetime import datetime 10 | 11 | fecha = "Jul 11 2022 1:30AM" 12 | resultado = datetime.strptime(fecha, "%b %d %Y %I:%M%p") 13 | print(resultado) 14 | # Resultado: 15 | # 2022-07-11 01:30:00 16 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_84.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 84 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para convertir la cadena 5 | "12-07-2022" a timestamp 6 | Imprime el resultado 7 | """ 8 | from datetime import datetime 9 | 10 | cadena = "12-07-2022" 11 | fecha = datetime.strptime(cadena, "%d-%m-%Y") 12 | resultado = fecha.timestamp() 13 | print(resultado) 14 | # Resultado: 15 | # 1657598400.0 16 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_85.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 85 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y 5 | hora actual en UTC 6 | """ 7 | from datetime import datetime, timezone 8 | 9 | utc = datetime.now(timezone.utc) 10 | print(utc) 11 | # Resultado: 12 | # 2022-07-13 05:35:58.236244+00:00 13 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_86.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 86 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para calcular la cantidad 5 | de segundo que han pasado desde el inicio 6 | del reto considerando solo la fecha 7 | Considera que el reto inicio el "20/04/2022" 8 | Imprime el resultado 9 | """ 10 | from datetime import datetime 11 | 12 | inicio = datetime.strptime("20/04/2022", "%d/%m/%Y") 13 | dia86 = datetime.strptime("14/07/2022", "%d/%m/%Y") 14 | segundos = (dia86 - inicio).total_seconds() 15 | print(segundos) 16 | # Resultado: 17 | # 7344000.0 18 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_87.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 87 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para imprimir el mes de 5 | Julio en formato calendario 6 | """ 7 | import calendar 8 | 9 | calendario = calendar.month(2022, 7) 10 | print(calendario) 11 | # Resultado: 12 | # July 2022 13 | # Mo Tu We Th Fr Sa Su 14 | # 1 2 3 15 | # 4 5 6 7 8 9 10 16 | # 11 12 13 14 15 16 17 17 | # 18 19 20 21 22 23 24 18 | # 25 26 27 28 29 30 31 19 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_88.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 88 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para imprimir la cantidad 5 | de semanas en cada mes del año 2022 6 | """ 7 | from calendar import monthcalendar 8 | 9 | semanas = [len(monthcalendar(2022, x)) for x in range(1, 13)] 10 | print(semanas) 11 | # Resultado: [6, 5, 5, 5, 6, 5, 5, 5, 5, 6, 5, 5] 12 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_89.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 89 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza calendar para obtener los días lunes 5 | del mes Julio del año 2022 6 | Imprime el resultado en una lista 7 | """ 8 | from calendar import monthcalendar 9 | 10 | lunes = [s[0] for s in monthcalendar(2022, 7) if s[0] != 0] 11 | print(lunes) 12 | # Resultado: [4, 11, 18, 25] 13 | -------------------------------------------------------------------------------- /soluciones/_090_dias/dia_90.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 90 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza datetime para imprimir la fecha y hora 5 | en formato de 12 horas ejemplo "2022/07/18 11:30 PM" 6 | Imprime el resultado en una cadena 7 | """ 8 | from datetime import datetime 9 | 10 | fecha = datetime.today() 11 | formato = fecha.strftime("%Y/%m/%d %I:%M %p") 12 | print(formato) 13 | # Resultado: 14 | # 2022/07/18 01:35 AM 15 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_100.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 🎉100🎉 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza try para capturar e imprimir la excepción 5 | dentro de la siguiente función y agrega un mensaje 6 | final utilizando finally 7 | En este reto si se aceptan multiples print 8 | """ 9 | 10 | 11 | def dia100(): 12 | try: 13 | mensaje = "Llegaste al último día" 14 | print(mensaje[len(mensaje)]) 15 | except Exception as e: 16 | print("Error: {}".format(e)) 17 | finally: 18 | print("Muchas gracias por participar!!") 19 | 20 | 21 | dia100() 22 | # Resultado: 23 | # Error: string index out of range 24 | # Muchas gracias por participar!! 25 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_91.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 91 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que devuelva los cuadrados 5 | de los primeros 10 números enteros iniciando en 1 6 | utilizando yields 7 | Imprime el resultado en una Lista 8 | """ 9 | 10 | 11 | def cuadrados(limite): 12 | i = 1 13 | while i <= limite: 14 | yield i * i 15 | i += 1 16 | 17 | 18 | lista = list(cuadrados(10)) 19 | print(lista) 20 | # Resultado: 21 | # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 22 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_92.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 92 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use yield y genere la 5 | siguiente serie [1, 2, 3, 2, 1, 2, 3, 2, 1] 6 | Imprime el resultado en una Lista 7 | """ 8 | 9 | 10 | def sube_baja(limite): 11 | i = j = 1 12 | k = 3 13 | while limite > 0: 14 | yield i 15 | i = i + j 16 | j = -1 if i >= k else 1 if i <= 1 else j 17 | limite -= 1 18 | 19 | 20 | lista = list(sube_baja(9)) 21 | print(lista) 22 | # Resultado: [1, 2, 3, 2, 1, 2, 3, 2, 1] 23 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_93.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 93 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use yield y genere los primeros 5 | 10 números de la serie de Fibonacci 6 | [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 7 | Imprime el resultado en una Lista 8 | """ 9 | 10 | 11 | def fibonnaci(limite): 12 | ultimo, actual = 0, 1 13 | while limite > 0: 14 | yield actual 15 | ultimo, actual = actual, ultimo + actual 16 | limite -= 1 17 | 18 | 19 | serie = list(fibonnaci(10)) 20 | print(serie) 21 | # Resultado: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 22 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_94.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 94 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | para recibir N-cadenas de nombres y 6 | devuelva una lista de N-saludos 7 | ejemplo de salida ['Hola Katy','Hola Ariel'] 8 | Imprime el resultado en una Lista 9 | """ 10 | 11 | 12 | def saludos(*nombres): 13 | resultado = ["Hola " + n for n in nombres] 14 | return resultado 15 | 16 | 17 | lista = saludos("Katy", "Pepe", "Ariel") 18 | print(lista) 19 | # Resultado: ['Hola Katy', 'Hola Pepe', 'Hola Ariel'] 20 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_95.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 95 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | para recibir N-números y determine cual es 6 | el mayor y el menor y los devuelva en un diccionario 7 | en el siguiente formato {"mayor": 5, "menor":-10} 8 | Imprime el resultado 9 | """ 10 | 11 | 12 | def mayor_menor(*números): 13 | mayor = max(números) 14 | menor = min(números) 15 | return {"mayor": mayor, "menor": menor} 16 | 17 | 18 | print(mayor_menor(1, -3, 5, 8, -6, 8, 10)) 19 | # Respuesta: {'mayor': 10, 'menor': -6} 20 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_96.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 96 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios de tipo 5 | Keyword para recibir nombre, apellido y edad y devuelva 6 | estos argumentos en un diccionario en el siguiente formato 7 | {"nombre": "Pepito", "apellido":"Perez","edad":25} 8 | Imprime el resultado 9 | """ 10 | 11 | 12 | def persona(**atributos): 13 | resultado = dict() 14 | for key, value in atributos.items(): 15 | resultado[key] = value 16 | return resultado 17 | 18 | 19 | print(persona(nombre="Pepito", apellido="Perez", edad=25)) 20 | # Resultado: {'nombre': 'Pepito', 'apellido': 'Perez', 'edad': 25} 21 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_97.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 97 de #100diasdepython 3 | El reto de hoy es: 4 | Crea una función que use argumentos arbitrarios 5 | de tipo Keyword para recibir los 3 lados de un 6 | triángulo y calcule su perímetro 7 | Imprime el resultado en un número de punto flotante 8 | """ 9 | 10 | 11 | def perimetro(**atributos): 12 | a = atributos["a"] 13 | b = atributos["b"] 14 | c = atributos["c"] 15 | return float(a + b + c) 16 | 17 | 18 | print(perimetro(a=3, b=4, c=4)) 19 | # Resultado: 11.0 20 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_98.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 98 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza timeit para obtener el tiempo de 5 | ejecución de la siguiente función 6 | Imprime el resultado en una sola línea 7 | """ 8 | import timeit 9 | 10 | 11 | def lazy(): 12 | suma = 0 13 | for i in range(0, 50000000): 14 | suma += i 15 | 16 | 17 | start = timeit.default_timer() 18 | lazy() 19 | end = timeit.default_timer() 20 | print(end - start) 21 | 22 | # Resultado aprox: 2.634737699998368 23 | -------------------------------------------------------------------------------- /soluciones/_100_dias/dia_99.py: -------------------------------------------------------------------------------- 1 | """ 2 | Bienvenido al día 99 de #100diasdepython 3 | El reto de hoy es: 4 | Utiliza try para capturar e imprimir la 5 | excepción de una división entre 0 del siguiente 6 | fragmento de código 7 | """ 8 | a = 7 9 | try: 10 | b = a / 0 11 | except Exception as e: 12 | print("Error: {}".format(e)) 13 | --------------------------------------------------------------------------------