├── .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 |
--------------------------------------------------------------------------------