Add exercise of new course 30-days-of-python
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
parent
f04e8db31f
commit
3d867aed80
40
30-days-of-python/01_Introducción/README.md
Normal file
40
30-days-of-python/01_Introducción/README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Introducción
|
||||||
|
|
||||||
|
Documento original en inglés: [Introduction](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/readme.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicio: Nivel 1
|
||||||
|
|
||||||
|
- Comprueba la versión de Python que estás utilizando.
|
||||||
|
- Abre la terminal interactiva de Python y realiza las siguientes operaciones. Los operandos son 3 y 4.
|
||||||
|
- suma(+)
|
||||||
|
- resta(-)
|
||||||
|
- multiplicación(*)
|
||||||
|
- módulo(%)
|
||||||
|
- división(/)
|
||||||
|
- potenciación(**)
|
||||||
|
- operador de división entera(//)
|
||||||
|
- Escribe cadenas de texto en la terminal interactiva de Python con la siguiente información:
|
||||||
|
- Tu nombre
|
||||||
|
- Tu apellido
|
||||||
|
- Tu país
|
||||||
|
- "Estoy disfrutando de 30 días de Python".
|
||||||
|
- Comprueba los tipos de datos de los siguientes valores:
|
||||||
|
- 10
|
||||||
|
- 9.8
|
||||||
|
- 3.14
|
||||||
|
- 4 - 4j
|
||||||
|
- ['Asabeneh', 'Python', 'Finlandia']
|
||||||
|
- Tu nombre
|
||||||
|
- Tu apellido
|
||||||
|
- Tu país
|
||||||
|
|
||||||
|
### Ejercicio: Nivel 2
|
||||||
|
|
||||||
|
- Crea una carpeta llamada `day_1` dentro de la carpeta `30DaysOfPython`. Dentro de la carpeta `day_1`, crea un archivo de Python llamado `helloworld.py` y repite las preguntas 1, 2, 3 y 4. Recuerda usar `print()` cuando estés trabajando en un archivo de Python. Navega hasta el directorio donde hayas guardado tu archivo y ejecútalo.
|
||||||
|
|
||||||
|
### Ejercicio: Nivel 3
|
||||||
|
|
||||||
|
- Escribe un ejemplo para diferentes tipos de datos en Python, como Número (Entero, Flotante, Complejo), Cadena de texto, Booleano, Lista, Tupla, Conjunto y Diccionario.
|
||||||
|
- Encuentra la distancia euclidiana entre (2, 3) y (10, 8).
|
@ -0,0 +1,42 @@
|
|||||||
|
## Variables, Funciones Incorporadas
|
||||||
|
|
||||||
|
Documento original en inglés: [Variables, Builtin Functions](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
- Dentro de `30DaysOfPython`, crea una carpeta llamada `day_2`. Dentro de esta carpeta, crea un archivo llamado `variables.py`.
|
||||||
|
- Escribe un comentario en Python que diga 'Día 2: Programación de 30 días en Python'.
|
||||||
|
- Declara una variable `nombre` y asígnale un valor.
|
||||||
|
- Declara una variable `apellido` y asígnale un valor.
|
||||||
|
- Declara una variable `nombre_completo` y asígnale un valor.
|
||||||
|
- Declara una variable `pais` y asígnale un valor.
|
||||||
|
- Declara una variable `ciudad` y asígnale un valor.
|
||||||
|
- Declara una variable `edad` y asígnale un valor.
|
||||||
|
- Declara una variable `año` y asígnale un valor.
|
||||||
|
- Declara una variable `esta_casado` y asígnale un valor.
|
||||||
|
- Declara una variable `es_verdadero` y asígnale un valor.
|
||||||
|
- Declara una variable `esta_luz_encendida` y asígnale un valor.
|
||||||
|
- Declara múltiples variables en una sola línea.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
- Comprueba el tipo de datos de todas tus variables utilizando la función incorporada `type()`.
|
||||||
|
- Utilizando la función incorporada `len()`, encuentra la longitud de tu nombre.
|
||||||
|
- Compara la longitud de tu nombre y tu apellido.
|
||||||
|
- Declara `5` como `num_uno` y `4` como `num_dos`.
|
||||||
|
- Suma `num_uno` y `num_dos` y asigna el valor a una variable llamada `total`.
|
||||||
|
- Resta `num_dos` de `num_uno` y asigna el valor a una variable llamada `diferencia`.
|
||||||
|
- Multiplica `num_uno` y `num_dos` y asigna el valor a una variable llamada `producto`.
|
||||||
|
- Divide `num_uno` por `num_dos` y asigna el valor a una variable llamada `division`.
|
||||||
|
- Utiliza la división de módulo para encontrar `num_dos` dividido por `num_uno` y asigna el valor a una variable llamada `resto`.
|
||||||
|
- Calcula `num_uno` elevado a la potencia de `num_dos` y asigna el valor a una variable llamada `exp`.
|
||||||
|
- Encuentra la división de piso de `num_uno` por `num_dos` y asigna el valor a una variable llamada `division_piso`.
|
||||||
|
- El radio de un círculo es de 30 metros.
|
||||||
|
- Calcula el área de un círculo y asigna el valor a una variable llamada `area_de_circulo`.
|
||||||
|
- Calcula la circunferencia de un círculo y asigna el valor a una variable llamada `circunferencia_de_circulo`.
|
||||||
|
- Toma el radio como entrada del usuario y calcula el área.
|
||||||
|
- Usa la función incorporada `input` para obtener el nombre, apellido, país y edad de un usuario y almacena los valores en las variables correspondientes.
|
||||||
|
- Ejecuta `help('keywords')` en la terminal de Python o en tu archivo para verificar las palabras reservadas o palabras clave de Python.
|
||||||
|
|
71
30-days-of-python/03_Operadores/README.md
Normal file
71
30-days-of-python/03_Operadores/README.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Operadores
|
||||||
|
|
||||||
|
Documento original en inglés: [Operators](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/03_Day_Operators/03_operators.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
1. Declara tu edad como una variable entera.
|
||||||
|
2. Declara tu altura como una variable de tipo flotante.
|
||||||
|
3. Declara una variable que almacene un número complejo.
|
||||||
|
4. Escribe un script que solicite al usuario que ingrese la base y la altura de un triángulo y calcule el área de este triángulo (área = 0.5 x b x h).
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa la base: 20
|
||||||
|
Ingresa la altura: 10
|
||||||
|
El área del triángulo es 100
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Escribe un script que solicite al usuario que ingrese los lados a, b y c de un triángulo. Calcula el perímetro del triángulo (perímetro = a + b + c).
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa el lado a: 5
|
||||||
|
Ingresa el lado b: 4
|
||||||
|
Ingresa el lado c: 3
|
||||||
|
El perímetro del triángulo es 12
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Obtén la longitud y el ancho de un rectángulo utilizando el comando de solicitud (prompt). Calcula su área (área = longitud x ancho) y su perímetro (perímetro = 2 x (longitud + ancho)).
|
||||||
|
|
||||||
|
7. Obten el radio de un círculo utilizando el comando de solicitud (prompt). Calcula el área (área = pi x r x r) y la circunferencia (c = 2 x pi x r), donde pi = 3.14.
|
||||||
|
|
||||||
|
8. Calcula la pendiente, la intersección en el eje x y la intersección en el eje y de la ecuación y = 2x - 2.
|
||||||
|
|
||||||
|
9. La pendiente es (m = y2 - y1 / x2 - x1). Calcula la pendiente y la distancia euclidiana entre el punto (2, 2) y el punto (6, 10).
|
||||||
|
|
||||||
|
10. Compara las pendientes en los ejercicios 8 y 9.
|
||||||
|
|
||||||
|
11. Calcula el valor de y (y = x^2 + 6x + 9). Intenta usar diferentes valores de x y descubre en qué valor de x y será igual a 0.
|
||||||
|
|
||||||
|
12. Encuentra la longitud de 'python' y 'dragon' y crea una declaración falsa de comparación.
|
||||||
|
|
||||||
|
13. Utiliza el operador 'and' para verificar si 'on' se encuentra en 'python' y 'dragon'.
|
||||||
|
|
||||||
|
14. Espero que este curso no esté lleno de jerga. Usa el operador 'in' para verificar si 'jerga' está en la oración.
|
||||||
|
|
||||||
|
15. No hay 'on' ni en dragon ni en python.
|
||||||
|
|
||||||
|
16. Encuentra la longitud del texto 'python' y convierte el valor a flotante y luego a cadena.
|
||||||
|
|
||||||
|
17. Los números pares son divisibles por 2 y el residuo es cero. ¿Cómo puedes verificar si un número es par o no utilizando Python?
|
||||||
|
|
||||||
|
18. Comprueba si la división entera de 7 entre 3 es igual al valor convertido a entero de 2.7.
|
||||||
|
|
||||||
|
19. Comprueba si el tipo de '10' es igual al tipo de 10.
|
||||||
|
|
||||||
|
20. Comprueba si int('9.8') es igual a 10.
|
||||||
|
|
||||||
|
21. Escribe un script que solicite al usuario que ingrese las horas y la tarifa por hora. Calcula el salario de la persona.
|
||||||
|
```
|
||||||
|
Ingresa las horas: 40
|
||||||
|
Ingresa la tarifa por hora: 28
|
||||||
|
Tus ganancias semanales son 1120
|
||||||
|
```
|
||||||
|
|
||||||
|
22. Escribe un script en Python que muestre la siguiente tabla.
|
||||||
|
```
|
||||||
|
1 1 1 1 1
|
||||||
|
2 1 2 4 8
|
||||||
|
3 1 3 9 27
|
||||||
|
4 1 4 16 64
|
||||||
|
5 1 5 25 125
|
||||||
|
```
|
69
30-days-of-python/04_Cadenas/README.md
Normal file
69
30-days-of-python/04_Cadenas/README.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Cadenas
|
||||||
|
|
||||||
|
Documento original en inglés: [Strings](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/04_Day_Strings/04_strings.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
1. Concatena las cadenas 'Thirty', 'Days', 'Of' y 'Python' en una sola cadena, 'Thirty Days Of Python'.
|
||||||
|
2. Concatena las cadenas 'Coding', 'For' y 'All' en una sola cadena, 'Coding For All'.
|
||||||
|
3. Declara una variable llamada `company` y asígnala al valor inicial "Coding For All".
|
||||||
|
4. Imprime la variable `company` usando `print()`.
|
||||||
|
5. Imprime la longitud de la cadena `company` usando el método `len()` y `print()`.
|
||||||
|
6. Cambia todos los caracteres a letras mayúsculas usando el método `upper()`.
|
||||||
|
7. Cambia todos los caracteres a letras minúsculas usando el método `lower()`.
|
||||||
|
8. Usa los métodos `capitalize()`, `title()` y `swapcase()` para formatear el valor de la cadena 'Coding For All'.
|
||||||
|
9. Corta la primera palabra de la cadena 'Coding For All'.
|
||||||
|
10. Comprueba si la cadena 'Coding For All' contiene la palabra 'Coding' utilizando los métodos `index`, `find` u otros.
|
||||||
|
11. Reemplaza la palabra 'coding' en la cadena 'Coding For All' por 'Python'.
|
||||||
|
12. Cambia 'Python for Everyone' a 'Python for All' utilizando el método `replace` u otros.
|
||||||
|
13. Divide la cadena 'Coding For All' usando el espacio como separador (split()).
|
||||||
|
14. Divide la cadena "Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon" en la coma.
|
||||||
|
15. ¿Cuál es el carácter en el índice 0 en la cadena 'Coding For All'?
|
||||||
|
16. ¿Cuál es el último índice de la cadena 'Coding For All'?
|
||||||
|
17. ¿Qué carácter está en el índice 10 en la cadena "Coding For All"?
|
||||||
|
18. Crea un acrónimo para el nombre 'Python For Everyone'.
|
||||||
|
19. Crea un acrónimo para el nombre 'Coding For All'.
|
||||||
|
20. Usa `index` para determinar la posición de la primera aparición de 'C' en 'Coding For All'.
|
||||||
|
21. Usa `index` para determinar la posición de la primera aparición de 'F' en 'Coding For All'.
|
||||||
|
22. Usa `rfind` para determinar la posición de la última aparición de 'l' en 'Coding For All People'.
|
||||||
|
23. Usa `index` o `find` para encontrar la posición de la primera aparición de la palabra 'because' en la siguiente frase: 'You cannot end a sentence with because because because is a conjunction'.
|
||||||
|
24. Usa `rindex` para encontrar la posición de la última aparición de la palabra 'because' en la siguiente frase: 'You cannot end a sentence with because because because is a conjunction'.
|
||||||
|
25. Corta la frase 'because because because' en la siguiente oración: 'You cannot end a sentence with because because because is a conjunction'.
|
||||||
|
26. Encuentra la posición de la primera aparición de la palabra 'because' en la siguiente oración: 'You cannot end a sentence with because because because is a conjunction'.
|
||||||
|
27. Corta la frase 'because because because' en la siguiente oración: 'You cannot end a sentence with because because because is a conjunction'.
|
||||||
|
28. ¿Empieza '\Coding For All' con un subconjunto 'Coding'?
|
||||||
|
29. ¿Termina 'Coding For All' con un subconjunto 'coding'?
|
||||||
|
30. ' Coding For All ', elimina los espacios en blanco a la izquierda y a la derecha en la cadena dada.
|
||||||
|
31. ¿Cuál de las siguientes variables devuelve True cuando usamos el método `isidentifier()`?
|
||||||
|
- 30DaysOfPython
|
||||||
|
- thirty_days_of_python
|
||||||
|
32. La siguiente lista contiene los nombres de algunas bibliotecas de Python: ['Django', 'Flask', 'Bottle', 'Pyramid', 'Falcon']. Une la lista con una cadena 'hash' con espacio.
|
||||||
|
33. Usa la secuencia de escape de nueva línea para separar las siguientes oraciones.
|
||||||
|
|
||||||
|
```py
|
||||||
|
Estoy disfrutando de este desafío.
|
||||||
|
Me pregunto qué sigue.
|
||||||
|
```
|
||||||
|
34. Usa la secuencia de escape de tabulación para escribir las siguientes líneas.
|
||||||
|
|
||||||
|
```
|
||||||
|
Nombre Edad País Ciudad
|
||||||
|
Asabeneh 250 Finlandia Helsinki
|
||||||
|
```
|
||||||
|
35. Usa el método de formato de cadena para mostrar lo siguiente:
|
||||||
|
```
|
||||||
|
radio = 10
|
||||||
|
area = 3.14 * radio ** 2
|
||||||
|
El área de un círculo con radio 10 es de 314 metros cuadrados.
|
||||||
|
```
|
||||||
|
36. Haz lo siguiente usando métodos de formato de cadena:
|
||||||
|
|
||||||
|
```
|
||||||
|
8 + 6 = 14
|
||||||
|
8 - 6 = 2
|
||||||
|
8 * 6 = 48
|
||||||
|
8 / 6 = 1.33
|
||||||
|
8 % 6 = 2
|
||||||
|
8 // 6 = 1
|
||||||
|
8 ** 6 = 262144
|
||||||
|
```
|
87
30-days-of-python/05_Listas/README.md
Normal file
87
30-days-of-python/05_Listas/README.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Listas
|
||||||
|
|
||||||
|
Documento original en inglés: [List](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/05_Day_Lists/05_lists.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Declarar una lista vacía.
|
||||||
|
|
||||||
|
2. Declarar una lista con más de 5 elementos.
|
||||||
|
|
||||||
|
3. Encontrar la longitud de tu lista.
|
||||||
|
|
||||||
|
4. Obtener el primer elemento, el elemento del medio y el último elemento de la lista.
|
||||||
|
|
||||||
|
5. Declarar una lista llamada `mixed_data_types` e inserta tu (nombre, edad, altura, estado civil, dirección).
|
||||||
|
|
||||||
|
6. Declarar una variable de lista llamada `it_companies` y asignar los valores iniciales Facebook, Google, Microsoft, Apple, IBM, Oracle y Amazon.
|
||||||
|
|
||||||
|
7. Imprime la lista usando `print()`.
|
||||||
|
|
||||||
|
8. Imprime el número de empresas en la lista.
|
||||||
|
|
||||||
|
9. Imprime la primera, la del medio y la última empresa.
|
||||||
|
|
||||||
|
10. Imprime la lista después de modificar una de las empresas.
|
||||||
|
|
||||||
|
11. Agrega una empresa de tecnología a `it_companies`.
|
||||||
|
|
||||||
|
12. Inserta una empresa de tecnología en el medio de la lista de empresas.
|
||||||
|
|
||||||
|
13. Cambia uno de los nombres de `it_companies` a mayúsculas (¡excepto IBM!).
|
||||||
|
|
||||||
|
14. Une las empresas de tecnología con una cadena '#; '.
|
||||||
|
|
||||||
|
15. Comprueba si cierta empresa existe en la lista `it_companies`.
|
||||||
|
|
||||||
|
16. Ordena la lista usando el método `sort()`.
|
||||||
|
|
||||||
|
17. Invierte la lista en orden descendente usando el método `reverse()`.
|
||||||
|
|
||||||
|
18. Corta las primeras 3 empresas de la lista.
|
||||||
|
|
||||||
|
19. Corta las últimas 3 empresas de la lista.
|
||||||
|
|
||||||
|
20. Corta la empresa o empresas de tecnología del medio de la lista.
|
||||||
|
|
||||||
|
21. Elimina la primera empresa de tecnología de la lista.
|
||||||
|
|
||||||
|
22. Elimina la empresa o empresas de tecnología del medio de la lista.
|
||||||
|
|
||||||
|
23. Elimina la última empresa de tecnología de la lista.
|
||||||
|
|
||||||
|
24. Elimina todas las empresas de tecnología de la lista.
|
||||||
|
|
||||||
|
25. Destruye la lista de empresas de tecnología.
|
||||||
|
|
||||||
|
26. Une las siguientes listas:
|
||||||
|
|
||||||
|
```
|
||||||
|
front_end = ['HTML', 'CSS', 'JS', 'React', 'Redux']
|
||||||
|
back_end = ['Node', 'Express', 'MongoDB']
|
||||||
|
```
|
||||||
|
Después de unir las listas en la pregunta 26, copia la lista unida y asígnala a una variable full_stack. Luego, inserta Python y SQL después de Redux.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. La siguiente es una lista de edades de 10 estudiantes:
|
||||||
|
|
||||||
|
```
|
||||||
|
edades = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24]
|
||||||
|
```
|
||||||
|
|
||||||
|
- Ordena la lista y encuentra la edad mínima y máxima.
|
||||||
|
- Agrega nuevamente la edad mínima y máxima a la lista.
|
||||||
|
- Encuentra la edad mediana (un solo elemento medio o dos elementos medios divididos por dos).
|
||||||
|
- Encuentra la edad promedio (suma de todos los elementos divididos por su número).
|
||||||
|
- Encuentra el rango de las edades (máximo menos mínimo).
|
||||||
|
- Compara el valor de (mínimo - promedio) y (máximo - promedio), usa el método abs().
|
||||||
|
|
||||||
|
2. Encuentra el país o países del medio en la lista de países.
|
||||||
|
- Divide la lista de países en dos listas iguales si es par; si no, agrega un país más para la primera mitad.
|
||||||
|
```
|
||||||
|
['China', 'Rusia', 'EE. UU.', 'Finlandia', 'Suecia', 'Noruega', 'Dinamarca']
|
||||||
|
```
|
||||||
|
- Desempaqueta los primeros tres países y el resto como países escandinavos.
|
40
30-days-of-python/06_Tuplas/README.md
Normal file
40
30-days-of-python/06_Tuplas/README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Tuplas
|
||||||
|
|
||||||
|
Documento original en inglés: [tuples](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/06_Day_Tuples/06_tuples.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Crea una tupla vacía.
|
||||||
|
|
||||||
|
2. Crea una tupla que contenga los nombres de tus hermanas y hermanos (hermanos imaginarios están bien).
|
||||||
|
|
||||||
|
3. Une las tuplas de hermanos y hermanas y asígnalo a `siblings`.
|
||||||
|
|
||||||
|
4. ¿Cuántos hermanos tienes?
|
||||||
|
|
||||||
|
5. Modifica la tupla `siblings` y agrega el nombre de tu padre y madre, asígnalo a `family_members`.
|
||||||
|
|
||||||
|
**Ejercicios: Nivel 2**
|
||||||
|
|
||||||
|
6. Desempaqueta hermanos y padres de `family_members`.
|
||||||
|
|
||||||
|
7. Crea tuplas de frutas, verduras y productos de origen animal. Une las tres tuplas y asígnalo a una variable llamada `food_stuff_tp`.
|
||||||
|
|
||||||
|
8. Cambia la tupla `food_stuff_tp` a una lista llamada `food_stuff_lt`.
|
||||||
|
|
||||||
|
9. Corta el elemento o elementos del medio de la tupla `food_stuff_tp` o la lista `food_stuff_lt`.
|
||||||
|
|
||||||
|
10. Corta los tres primeros elementos y los tres últimos elementos de la lista `food_stuff_lt`.
|
||||||
|
|
||||||
|
11. Elimina completamente la tupla `food_staff_tp`.
|
||||||
|
|
||||||
|
12. Verifica si un elemento existe en la tupla:
|
||||||
|
|
||||||
|
- Verifica si 'Estonia' es un país nórdico.
|
||||||
|
|
||||||
|
- Verifica si 'Iceland' es un país nórdico.
|
||||||
|
```
|
||||||
|
nordic_countries = ('Dinamarca', 'Finlandia', 'Islandia', 'Noruega', 'Suecia')
|
||||||
|
```
|
48
30-days-of-python/07_Conjuntos/README.md
Normal file
48
30-days-of-python/07_Conjuntos/README.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Conjuntos
|
||||||
|
|
||||||
|
Documento original en inglés: [Sets](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/07_Day_Sets/07_sets.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
```
|
||||||
|
# Conjuntos
|
||||||
|
it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
|
||||||
|
A = {19, 22, 24, 20, 25, 26}
|
||||||
|
B = {19, 22, 20, 25, 26, 24, 28, 27}
|
||||||
|
age = [22, 19, 24, 25, 26, 24, 25, 24]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Encuentra la longitud del conjunto `it_companies`.
|
||||||
|
|
||||||
|
2. Agrega 'Twitter' a `it_companies`.
|
||||||
|
|
||||||
|
3. Inserta varias compañías de TI a la vez en el conjunto `it_companies`.
|
||||||
|
|
||||||
|
4. Elimina una de las compañías del conjunto `it_companies`.
|
||||||
|
|
||||||
|
5. ¿Cuál es la diferencia entre `remove` y `discard`?
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Une los conjuntos A y B.
|
||||||
|
|
||||||
|
2. Encuentra la intersección entre A y B.
|
||||||
|
|
||||||
|
3. ¿Es A un subconjunto de B?
|
||||||
|
|
||||||
|
4. ¿Son A y B conjuntos disjuntos?
|
||||||
|
|
||||||
|
5. Une A con B y B con A.
|
||||||
|
|
||||||
|
6. ¿Cuál es la diferencia simétrica entre A y B?
|
||||||
|
|
||||||
|
7. Elimina completamente los conjuntos.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Convierte las edades a un conjunto y compara la longitud de la lista y el conjunto, ¿cuál es más grande?
|
||||||
|
|
||||||
|
2. Explica la diferencia entre los siguientes tipos de datos: cadena (string), lista (list), tupla (tuple) y conjunto (set).
|
||||||
|
|
||||||
|
3. Soy un profesor y me encanta inspirar y enseñar a la gente. ¿Cuántas palabras únicas se han utilizado en la oración? Utiliza los métodos `split` y `set` para obtener las palabras únicas.
|
27
30-days-of-python/08_Diccionarios/README.md
Normal file
27
30-days-of-python/08_Diccionarios/README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Diccionarios
|
||||||
|
|
||||||
|
Documento original en inglés: [Dictionaries](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/08_Day_Dictionaries/08_dictionaries.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
1. Crea un diccionario vacío llamado `perro`.
|
||||||
|
|
||||||
|
2. Agrega las claves `nombre`, `color`, `raza`, `patas` y `edad` al diccionario `perro`.
|
||||||
|
|
||||||
|
3. Crea un diccionario llamado `estudiante` y agrega las siguientes claves: `nombre`, `apellido`, `género`, `edad`, `estado civil`, `habilidades`, `país`, `ciudad` y `dirección`.
|
||||||
|
|
||||||
|
4. Obtiene la longitud del diccionario `estudiante`.
|
||||||
|
|
||||||
|
5. Obtiene el valor de `habilidades` y verifica su tipo de dato, que debería ser una lista.
|
||||||
|
|
||||||
|
6. Modifica los valores de `habilidades` agregando una o dos habilidades más.
|
||||||
|
|
||||||
|
7. Obtiene las claves del diccionario como una lista.
|
||||||
|
|
||||||
|
8. Obtiene los valores del diccionario como una lista.
|
||||||
|
|
||||||
|
9. Convierte el diccionario en una lista de tuplas utilizando el método `items()`.
|
||||||
|
|
||||||
|
10. Elimina uno de los elementos del diccionario.
|
||||||
|
|
||||||
|
11. Elimina uno de los diccionarios por completo.
|
83
30-days-of-python/09_Condicionales/README.md
Normal file
83
30-days-of-python/09_Condicionales/README.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# Condicionales
|
||||||
|
|
||||||
|
Documento original en inglés: [Conditionals](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/09_Day_Conditionals/09_conditionals.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
# Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Obtiene la entrada del usuario utilizando `input("Ingresa tu edad: ")`. Si el usuario tiene 18 años o más, muestra el mensaje: "Eres lo suficientemente mayor para conducir". Si es menor de 18 años, muestra el mensaje que indique cuántos años faltan para poder aprender a conducir. **Output:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa tu edad: 30
|
||||||
|
Eres lo suficientemente mayor para aprender a conducir.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa tu edad: 15
|
||||||
|
Necesitas 3 años más para aprender a conducir.
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Compara los valores de `mi_edad` y `tu_edad` usando `if... else`. ¿Quién es mayor (yo o tú)? Utiliza `input("Ingresa tu edad: ")` para obtener la edad como entrada. Puedes utilizar una condición anidada para imprimir "año" para una diferencia de edad de 1 año, "años" para diferencias mayores y un texto personalizado si `mi_edad` es igual a `tu_edad`. **Output:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa tu edad: 30
|
||||||
|
Tu eres 5 años mayor que yo.
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Obtiene dos números del usuario utilizando el prompt `input`. Si `a` es mayor que `b`, devuelve "a es mayor que b". Si `a` es menor que `b`, devuelve "a es menor que b". En caso contrario, devuelve "a es igual a b". **Output:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Ingresa el número uno: 4
|
||||||
|
Ingresa el número dos: 3
|
||||||
|
4 es mayor que 3
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Escribe un código que asigne una calificación a los estudiantes según sus puntuaciones:
|
||||||
|
```
|
||||||
|
80-100: A
|
||||||
|
70-89: B
|
||||||
|
60-69: C
|
||||||
|
50-59: D
|
||||||
|
0-49: F
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Comprueba si la estación es Otoño, Invierno, Primavera o Verano. Si la entrada del usuario es: Septiembre, Octubre o Noviembre, la estación es Otoño. Si la entrada es: Diciembre, Enero o Febrero, la estación es Invierno. Si la entrada es: Marzo, Abril o Mayo, la estación es Primavera. Si la entrada es: Junio, Julio o Agosto, la estación es Verano.
|
||||||
|
|
||||||
|
3. La siguiente lista contiene algunas frutas:
|
||||||
|
```
|
||||||
|
frutas = ['banana', 'naranja', 'mango', 'limón']
|
||||||
|
```
|
||||||
|
|
||||||
|
Si una fruta no existe en la lista, agrégala a la lista y muestra la lista modificada. Si la fruta ya existe, muestra el mensaje "Esa fruta ya existe en la lista".
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
Aquí tenemos un diccionario llamado `persona`. ¡Siéntete libre de modificarlo!
|
||||||
|
|
||||||
|
```python
|
||||||
|
persona = {
|
||||||
|
'nombre': 'Asabeneh',
|
||||||
|
'apellido': 'Yetayeh',
|
||||||
|
'edad': 250,
|
||||||
|
'país': 'Finlandia',
|
||||||
|
'casado': True,
|
||||||
|
'habilidades': ['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
|
||||||
|
'dirección': {
|
||||||
|
'calle': 'Calle Espacial',
|
||||||
|
'código postal': '02210'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- Comprueba si el diccionario persona tiene una clave llamada habilidades y, si es así, imprime la habilidad intermedia de la lista de habilidades.
|
||||||
|
- Comprueba si el diccionario persona tiene una clave llamada habilidades y, si es así, verifica si la persona tiene la habilidad 'Python' e imprime el resultado.
|
||||||
|
- Si las habilidades de una persona son solo JavaScript y React, imprime "Es un desarrollador front-end". Si las habilidades incluyen Node, Python y MongoDB, imprime "Es un desarrollador back-end". Si las habilidades incluyen React, Node y MongoDB, imprime "Es un desarrollador fullstack". En caso contrario, imprime "título desconocido".
|
||||||
|
- Si la persona está casada y vive en Finlandia, imprime la información en el siguiente formato:
|
||||||
|
-
|
||||||
|
```
|
||||||
|
Asabeneh Yetayeh vive en Finlandia. Está casado.
|
||||||
|
```
|
81
30-days-of-python/10_Bucles/README.md
Normal file
81
30-days-of-python/10_Bucles/README.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# Bucles
|
||||||
|
|
||||||
|
Documento original en inglés: [Loops](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/10_Day_Loops/10_loops.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
# Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Itera de 0 a 10 utilizando un bucle for, haz lo mismo utilizando un bucle while.
|
||||||
|
|
||||||
|
2. Itera de 10 a 0 utilizando un bucle for, haz lo mismo utilizando un bucle while.
|
||||||
|
|
||||||
|
3. Escribe un bucle que haga siete llamadas a `print()`, de modo que obtengamos el siguiente triángulo en la salida:
|
||||||
|
|
||||||
|
```
|
||||||
|
#
|
||||||
|
##
|
||||||
|
###
|
||||||
|
####
|
||||||
|
#####
|
||||||
|
######
|
||||||
|
#######
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Utiliza bucles anidados para crear lo siguiente:
|
||||||
|
|
||||||
|
```
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
# # # # # # # #
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Imprime el siguiente patrón:
|
||||||
|
|
||||||
|
```
|
||||||
|
0 x 0 = 0
|
||||||
|
1 x 1 = 1
|
||||||
|
2 x 2 = 4
|
||||||
|
3 x 3 = 9
|
||||||
|
4 x 4 = 16
|
||||||
|
5 x 5 = 25
|
||||||
|
6 x 6 = 36
|
||||||
|
7 x 7 = 49
|
||||||
|
8 x 8 = 64
|
||||||
|
9 x 9 = 81
|
||||||
|
10 x 10 = 100
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Itera a través de la lista `['Python', 'Numpy', 'Pandas', 'Django', 'Flask']` utilizando un bucle for e imprime los elementos.
|
||||||
|
|
||||||
|
7. Utiliza un bucle for para iterar de 0 a 100 e imprime solo los números pares.
|
||||||
|
|
||||||
|
8. Utiliza un bucle for para iterar de 0 a 100 e imprime solo los números impares.
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Utiliza un bucle for para iterar de 0 a 100 e imprime la suma de todos los números.
|
||||||
|
```
|
||||||
|
La suma de todos los números es 5050.
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Utiliza un bucle for para iterar de 0 a 100 e imprime la suma de todos los números pares y la suma de todos los números impares.
|
||||||
|
```
|
||||||
|
La suma de todos los números pares es 2550. Y la suma de todos los números impares es 2500.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Ve a la carpeta de datos y utiliza el archivo countries.py. Recorre los países y extrae todos los países que contienen la palabra "land".
|
||||||
|
|
||||||
|
2. Esta es una lista de frutas: `['banana', 'naranja', 'mango', 'limón']`. Invierte el orden utilizando un bucle.
|
||||||
|
|
||||||
|
3. Ve a la carpeta de datos y utiliza el archivo countries_data.py.
|
||||||
|
- ¿Cuál es el número total de idiomas en los datos?
|
||||||
|
- Encuentra los diez idiomas más hablados en los datos.
|
||||||
|
- Encuentra los 10 países más poblados del mundo.
|
92
30-days-of-python/11_Funciones/README.md
Normal file
92
30-days-of-python/11_Funciones/README.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Funciones
|
||||||
|
|
||||||
|
Documento original en inglés: [Functions](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/11_Day_Functions/11_functions.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
# Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Declara una función llamada `add_two_numbers`. Toma dos parámetros y devuelve la suma.
|
||||||
|
|
||||||
|
2. El área de un círculo se calcula de la siguiente manera: `área = π x r x r`. Escribe una función que calcule `area_of_circle`.
|
||||||
|
|
||||||
|
3. Escribe una función llamada `add_all_nums` que tome un número arbitrario de argumentos y sume todos los argumentos. Verifica si todos los elementos de la lista son de tipo numérico. Si no lo son, proporciona un mensaje de retroalimentación razonable.
|
||||||
|
|
||||||
|
4. La temperatura en °C se puede convertir a °F utilizando la siguiente fórmula: °F = (°C x 9/5) + 32. Escribe una función que convierta de °C a °F, `convert_celsius_to_fahrenheit`.
|
||||||
|
|
||||||
|
5. Escribe una función llamada `check_season`. Toma un parámetro de mes y devuelve la estación: Otoño, Invierno, Primavera o Verano.
|
||||||
|
|
||||||
|
6. Escribe una función llamada `calculate_slope` que devuelva la pendiente de una ecuación lineal.
|
||||||
|
|
||||||
|
7. La ecuación cuadrática se calcula de la siguiente manera: `ax² + bx + c = 0`. Escribe una función que calcule el conjunto de soluciones de una ecuación cuadrática, `solve_quadratic_eqn`.
|
||||||
|
|
||||||
|
8. Declara una función llamada `print_list`. Toma una lista como parámetro y imprime cada elemento de la lista.
|
||||||
|
|
||||||
|
9. Declara una función llamada `reverse_list`. Toma un arreglo como parámetro y devuelve el arreglo invertido (usa bucles).
|
||||||
|
|
||||||
|
```
|
||||||
|
print(reverse_list([1, 2, 3, 4, 5]))
|
||||||
|
# [5, 4, 3, 2, 1]
|
||||||
|
print(reverse_list1(["A", "B", "C"]))
|
||||||
|
# ["C", "B", "A"]
|
||||||
|
```
|
||||||
|
|
||||||
|
10. Declara una función llamada `capitalize_list_items`. Toma una lista como parámetro y devuelve una lista de elementos en mayúsculas.
|
||||||
|
|
||||||
|
11. Declara una función llamada `add_item`. Toma una lista y un parámetro de elemento. Devuelve una lista con el elemento agregado al final.
|
||||||
|
```
|
||||||
|
food_staff = ['Potato', 'Tomato', 'Mango', 'Milk'];
|
||||||
|
print(add_item(food_staff, 'Meat')) # ['Potato', 'Tomato', 'Mango', 'Milk','Meat'];
|
||||||
|
numbers = [2, 3, 7, 9];
|
||||||
|
print(add_item(numbers, 5)) [2, 3, 7, 9, 5]
|
||||||
|
```
|
||||||
|
|
||||||
|
12. Declara una función llamada `remove_item`. Toma una lista y un parámetro de elemento. Devuelve una lista con el elemento eliminado de ella.
|
||||||
|
```
|
||||||
|
food_staff = ['Potato', 'Tomato', 'Mango', 'Milk'];
|
||||||
|
print(remove_item(food_staff, 'Mango')) # ['Potato', 'Tomato', 'Milk'];
|
||||||
|
numbers = [2, 3, 7, 9];
|
||||||
|
print(remove_item(numbers, 3)) # [2, 7, 9]
|
||||||
|
```
|
||||||
|
|
||||||
|
13. Declara una función llamada `sum_of_numbers`. Toma un número como parámetro y suma todos los números en ese rango.
|
||||||
|
```
|
||||||
|
print(sum_of_numbers(5)) # 15
|
||||||
|
print(sum_all_numbers(10)) # 55
|
||||||
|
print(sum_all_numbers(100)) # 5050
|
||||||
|
```
|
||||||
|
|
||||||
|
14. Declara una función llamada `sum_of_odds`. Toma un número como parámetro y suma todos los números impares en ese rango.
|
||||||
|
|
||||||
|
15. Declara una función llamada `sum_of_even`. Toma un número como parámetro y suma todos los números pares en ese rango.
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Declara una función llamada `evens_and_odds`. Toma un número entero positivo como parámetro y cuenta el número de pares e impares en ese número.
|
||||||
|
```
|
||||||
|
print(evens_and_odds(100))
|
||||||
|
# The number of odds are 50.
|
||||||
|
# The number of evens are 51.
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Llama a tu función `factorial`, toma un número entero como parámetro y devuelve el factorial de ese número.
|
||||||
|
|
||||||
|
3. Llama a tu función `is_empty`, toma un parámetro y verifica si está vacío o no.
|
||||||
|
|
||||||
|
4. Escribe diferentes funciones que tomen listas. Deben calcular la media, mediana, moda, rango, varianza y desviación estándar. Las funciones se llaman `calculate_mean`, `calculate_median`, `calculate_mode`, `calculate_range`, `calculate_variance` y `calculate_std` (desviación estándar).
|
||||||
|
|
||||||
|
## Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Escribe una función llamada `is_prime` que compruebe si un número es primo.
|
||||||
|
|
||||||
|
2. Escribe una función que compruebe si todos los elementos de una lista son únicos.
|
||||||
|
|
||||||
|
3. Escribe una función que compruebe si todos los elementos de una lista son del mismo tipo de dato.
|
||||||
|
|
||||||
|
4. Escribe una función que compruebe si una variable proporcionada es una variable válida en Python.
|
||||||
|
|
||||||
|
5. Ve a la carpeta de datos y accede al archivo countries-data.py.
|
||||||
|
|
||||||
|
- Crea una función llamada `most_spoken_languages_in_the_world`. Debe devolver las 10 o 20 lenguas más habladas en el mundo en orden descendente.
|
||||||
|
|
||||||
|
- Crea una función llamada `most_populated_countries`. Debe devolver los 10 o 20 países más poblados en orden descendente.
|
64
30-days-of-python/12_Módulos/README.md
Normal file
64
30-days-of-python/12_Módulos/README.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Módulos
|
||||||
|
|
||||||
|
Documento original en inglés: [Modules](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/12_Day_Modules/12_modules.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Escribe una función que genere un identificador de usuario aleatorio de seis dígitos/caracteres.
|
||||||
|
|
||||||
|
```python
|
||||||
|
print(random_user_id())
|
||||||
|
# '1ee33d'
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Modifica la tarea anterior. Declara una función llamada user_id_gen_by_user. No toma parámetros, pero toma dos entradas utilizando input(). Una de las entradas es el número de caracteres y la segunda entrada es el número de IDs que se supone que deben generarse.
|
||||||
|
```
|
||||||
|
print(user_id_gen_by_user()) # Entrada de usuario: 5 5
|
||||||
|
# Salida:
|
||||||
|
# kcsy2
|
||||||
|
# SMFYb
|
||||||
|
# bWmeq
|
||||||
|
# ZXOYh
|
||||||
|
# 2Rgxf
|
||||||
|
|
||||||
|
print(user_id_gen_by_user()) # Entrada de usuario: 16 5
|
||||||
|
# Salida:
|
||||||
|
# 1GCSgPLMaBAVQZ26
|
||||||
|
# YD7eFwNQKNs7qXaT
|
||||||
|
# ycArC5yrRupyG00S
|
||||||
|
# UbGxOFI7UXSWAyKN
|
||||||
|
# dIV0SSUTgAdKwStr
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Escribe una función llamada rgb_color_gen que generará colores RGB (3 valores que van desde 0 hasta 255 cada uno).
|
||||||
|
|
||||||
|
```
|
||||||
|
print(rgb_color_gen())
|
||||||
|
# 'rgb(125,244,255)' - la salida debe estar en esta forma
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
1. Escribe una función llamada list_of_hexa_colors que devuelva cualquier cantidad de colores hexadecimales en una lista (seis números hexadecimales escritos después del #). El sistema numérico hexadecimal está compuesto por 16 símbolos, del 0 al 9 y las primeras 6 letras del alfabeto, de la a a la f. Mira el ejercicio 6 para ejemplos de salida.
|
||||||
|
2. Escribe una función llamada list_of_rgb_colors que devuelva cualquier cantidad de colores RGB en una lista.
|
||||||
|
3. Escribe una función llamada generate_colors que pueda generar cualquier cantidad de colores hexadecimales o RGB.
|
||||||
|
|
||||||
|
```
|
||||||
|
generate_colors('hexa', 3)
|
||||||
|
# ['#a3e12f','#03ed55','#eb3d2b']
|
||||||
|
|
||||||
|
generate_colors('hexa', 1)
|
||||||
|
# ['#b334ef']
|
||||||
|
|
||||||
|
generate_colors('rgb', 3)
|
||||||
|
# ['rgb(5, 55, 175','rgb(50, 105, 100','rgb(15, 26, 80']
|
||||||
|
|
||||||
|
generate_colors('rgb', 1)
|
||||||
|
# ['rgb(33,79, 176)']
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Ejercicios: Nivel 3
|
||||||
|
1. Llama a tu función shuffle_list, toma una lista como parámetro y devuelve una lista mezclada.
|
||||||
|
2. Escribe una función que devuelva una matriz de siete números aleatorios en un rango de 0-9. Todos los números deben ser únicos.
|
64
30-days-of-python/13_Comprensión_de_listas/README.md
Normal file
64
30-days-of-python/13_Comprensión_de_listas/README.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Comprensión de listas
|
||||||
|
|
||||||
|
Documento original en inglés: [List comprehension](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/13_Day_List_comprehension/13_list_comprehension.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Filtra solo los números negativos y cero en la lista usando una comprensión de lista.
|
||||||
|
|
||||||
|
```python
|
||||||
|
numbers = [-4, -3, -2, -1, 0, 2, 4, 6]
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Aplana la siguiente lista de listas de listas a una lista unidimensional:
|
||||||
|
|
||||||
|
```
|
||||||
|
list_of_lists =[[[1, 2, 3]], [[4, 5, 6]], [[7, 8, 9]]]
|
||||||
|
|
||||||
|
# Resultado: [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Usando una comprensión de lista, crea la siguiente lista de tuplas:
|
||||||
|
|
||||||
|
```
|
||||||
|
[(0, 1, 0, 0, 0, 0, 0),
|
||||||
|
(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
(2, 1, 2, 4, 8, 16, 32),
|
||||||
|
(3, 1, 3, 9, 27, 81, 243),
|
||||||
|
(4, 1, 4, 16, 64, 256, 1024),
|
||||||
|
(5, 1, 5, 25, 125, 625, 3125),
|
||||||
|
(6, 1, 6, 36, 216, 1296, 7776),
|
||||||
|
(7, 1, 7, 49, 343, 2401, 16807),
|
||||||
|
(8, 1, 8, 64, 512, 4096, 32768),
|
||||||
|
(9, 1, 9, 81, 729, 6561, 59049),
|
||||||
|
(10, 1, 10, 100, 1000, 10000, 100000)]
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Aplana la siguiente lista a una nueva lista:
|
||||||
|
|
||||||
|
```
|
||||||
|
countries = [[('Finland', 'Helsinki')], [('Sweden', 'Stockholm')], [('Norway', 'Oslo')]]
|
||||||
|
|
||||||
|
# Resultado:
|
||||||
|
[['FINLAND', 'FIN', 'HELSINKI'],
|
||||||
|
['SWEDEN', 'SWE', 'STOCKHOLM'],
|
||||||
|
['NORWAY', 'NOR', 'OSLO']]
|
||||||
|
```
|
||||||
|
5. Cambia la siguiente lista a una lista de diccionarios:
|
||||||
|
```
|
||||||
|
countries = [[('Finland', 'Helsinki')], [('Sweden', 'Stockholm')], [('Norway', 'Oslo')]]
|
||||||
|
|
||||||
|
# Resultado:
|
||||||
|
[{'country': 'Finland', 'city': 'Helsinki'},
|
||||||
|
{'country': 'Sweden', 'city': 'Stockholm'},
|
||||||
|
{'country': 'Norway', 'city': 'Oslo'}]
|
||||||
|
```
|
||||||
|
6. Cambia la siguiente lista de listas a una lista de cadenas concatenadas:
|
||||||
|
```
|
||||||
|
names = [[('Asabeneh', 'Yetayeh')], [('David', 'Smith')], [('Donald', 'Trump')], [('Bill', 'Gates')]]
|
||||||
|
|
||||||
|
# Resultado: ['Asabeneh Yetayeh', 'David Smith', 'Donald Trump', 'Bill Gates']
|
||||||
|
```
|
||||||
|
7. Escribe una función lambda que pueda resolver una pendiente o una ordenada al origen de funciones lineales.
|
45
30-days-of-python/14_Funciones_de_orden_superior/README.md
Normal file
45
30-days-of-python/14_Funciones_de_orden_superior/README.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Funciones de Orden Superior
|
||||||
|
|
||||||
|
Documento original en inglés: [Higher Order Functions](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/14_Day_Higher_order_functions/14_higher_order_functions.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
```
|
||||||
|
countries = ['Estonia', 'Finlandia', 'Suecia', 'Dinamarca', 'Noruega', 'Islandia']
|
||||||
|
names = ['Asabeneh', 'Lidiya', 'Ermias', 'Abraham']
|
||||||
|
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. Explica la diferencia entre map, filter y reduce.
|
||||||
|
2. Explica la diferencia entre función de orden superior, cierre y decorador.
|
||||||
|
3. Define una función de llamada antes de map, filter o reduce, mira los ejemplos.
|
||||||
|
4. Usa un bucle for para imprimir cada país en la lista de países.
|
||||||
|
5. Usa un bucle for para imprimir cada nombre en la lista de nombres.
|
||||||
|
6. Usa un bucle for para imprimir cada número en la lista de números.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Usa map para crear una nueva lista cambiando cada país a mayúsculas en la lista de países.
|
||||||
|
2. Usa map para crear una nueva lista cambiando cada número por su cuadrado en la lista de números.
|
||||||
|
3. Usa map para cambiar cada nombre a mayúsculas en la lista de nombres.
|
||||||
|
4. Usa filter para filtrar los países que contengan 'land'.
|
||||||
|
5. Usa filter para filtrar los países que tengan exactamente seis caracteres.
|
||||||
|
6. Usa filter para filtrar los países que contengan seis letras o más en la lista de países.
|
||||||
|
7. Usa filter para filtrar los países que comiencen con 'E'.
|
||||||
|
8. Encadena dos o más iteradores de lista (por ejemplo, arr.map(callback).filter(callback).reduce(callback)).
|
||||||
|
9. Declara una función llamada get_string_lists que tome una lista como parámetro y luego devuelva una lista que contenga solo elementos de tipo cadena.
|
||||||
|
10. Usa reduce para sumar todos los números en la lista de números.
|
||||||
|
11. Usa reduce para concatenar todos los países y producir la siguiente oración: Estonia, Finlandia, Suecia, Dinamarca, Noruega e Islandia son países del norte de Europa.
|
||||||
|
12. Declara una función llamada categorize_countries que devuelva una lista de países con algún patrón común (puedes encontrar la [lista de países](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/data/countries.py) en este repositorio como countries.js(eg 'land', 'ia', 'island', 'stan')).
|
||||||
|
13. Crea una función que devuelva un diccionario, donde las claves sean las letras iniciales de los países y los valores sean la cantidad de nombres de países que comienzan con esa letra.
|
||||||
|
14. Declara una función llamada get_first_ten_countries que devuelva una lista de los primeros diez países de la lista de países.
|
||||||
|
15. Declara una función llamada get_last_ten_countries que devuelva los últimos diez países en la lista de países.
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Usa el archivo [countries_data.py](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/data/countries-data.py) y sigue las siguientes tareas:
|
||||||
|
- Ordena los países por nombre, capital y población.
|
||||||
|
- Filtra los diez idiomas más hablados por ubicación.
|
||||||
|
- Filtra los diez países más poblados.
|
7
30-days-of-python/15_Errores_de_tipo_en_Python/README.md
Normal file
7
30-days-of-python/15_Errores_de_tipo_en_Python/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Errores de tipo en Python
|
||||||
|
|
||||||
|
Documento original en inglés: [Python Type Errors](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/15_Day_Python_type_errors/15_python_type_errors.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
1. Abre tu shell interactivo de Python y prueba todos los ejemplos cubiertos en esta sección.
|
15
30-days-of-python/16_Fecha_y_hora_en_Python/README.md
Normal file
15
30-days-of-python/16_Fecha_y_hora_en_Python/README.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Fecha y Hora en Python
|
||||||
|
|
||||||
|
Documento original en inglés: [Python Date time](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/16_Day_Python_date_time/16_python_datetime.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
1. Obtén el día actual, mes, año, hora, minuto y marca de tiempo actual desde el módulo datetime.
|
||||||
|
2. Formatea la fecha actual utilizando este formato: "%m/%d/%Y, %H:%M:%S".
|
||||||
|
3. Hoy es 5 de diciembre de 2019. Cambia esta cadena de tiempo a un objeto de tiempo.
|
||||||
|
4. Calcula la diferencia de tiempo entre ahora y el Año Nuevo.
|
||||||
|
5. Calcula la diferencia de tiempo entre el 1 de enero de 1970 y ahora.
|
||||||
|
6. Piensa para qué puedes usar el módulo datetime. Ejemplos:
|
||||||
|
- Análisis de series temporales.
|
||||||
|
- Obtener una marca de tiempo de cualquier actividad en una aplicación.
|
||||||
|
- Publicar entradas en un blog.
|
12
30-days-of-python/17_Manejo_de_excepciones/README.md
Normal file
12
30-days-of-python/17_Manejo_de_excepciones/README.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Manejo de excepciones
|
||||||
|
|
||||||
|
Documento original en inglés: [Exception handling](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/17_Day_Exception_handling/17_exception_handling.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
```
|
||||||
|
names = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland', 'Estonia', 'Russia'].
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Desempaca los cinco primeros países y almacénalos en una variable llamada 'nordic_countries', almacena 'Estonia' y 'Russia' en variables 'es' y 'ru' respectivamente.
|
||||||
|
|
71
30-days-of-python/18_Expresiones_regulares/README.md
Normal file
71
30-days-of-python/18_Expresiones_regulares/README.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Expresiones regulares
|
||||||
|
|
||||||
|
Documento original en inglés: [Regular Expressions](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/18_Day_Regular_expressions/18_regular_expressions.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 1
|
||||||
|
|
||||||
|
1. ¿Cuál es la palabra más frecuente en el siguiente párrafo?
|
||||||
|
|
||||||
|
```
|
||||||
|
paragraph = 'I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
[
|
||||||
|
(6, 'love'),
|
||||||
|
(5, 'you'),
|
||||||
|
(3, 'can'),
|
||||||
|
(2, 'what'),
|
||||||
|
(2, 'teaching'),
|
||||||
|
(2, 'not'),
|
||||||
|
(2, 'else'),
|
||||||
|
(2, 'do'),
|
||||||
|
(2, 'I'),
|
||||||
|
(1, 'which'),
|
||||||
|
(1, 'to'),
|
||||||
|
(1, 'the'),
|
||||||
|
(1, 'something'),
|
||||||
|
(1, 'if'),
|
||||||
|
(1, 'give'),
|
||||||
|
(1, 'develop'),
|
||||||
|
(1, 'capabilities'),
|
||||||
|
(1, 'application'),
|
||||||
|
(1, 'an'),
|
||||||
|
(1, 'all'),
|
||||||
|
(1, 'Python'),
|
||||||
|
(1, 'If')
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
2. La posición de algunas partículas en el eje x horizontal son -12, -4, -3 y -1 en la dirección negativa, 0 en el origen, 4 y 8 en la dirección positiva. Extrae estos números de todo el texto y encuentra la distancia entre las dos partículas más lejanas.
|
||||||
|
|
||||||
|
```
|
||||||
|
puntos = ['-12', '-4', '-3', '-1', '0', '4', '8']
|
||||||
|
puntos_ordenados = [-12, -4, -3, -1, -1, 0, 2, 4, 8]
|
||||||
|
distancia = 8 - (-12) # La distancia es 20
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 2
|
||||||
|
|
||||||
|
1. Escribe un patrón que identifique si una cadena es una variable válida en Python.
|
||||||
|
|
||||||
|
```
|
||||||
|
es_variable_valida('primer_nombre') # Verdadero
|
||||||
|
es_variable_valida('primer-nombre') # Falso
|
||||||
|
es_variable_valida('1primer_nombre') # Falso
|
||||||
|
es_variable_valida('nombre') # Verdadero
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejercicios: Nivel 3
|
||||||
|
|
||||||
|
1. Limpia el siguiente texto. Después de limpiarlo, cuenta las tres palabras más frecuentes en la cadena.
|
||||||
|
```
|
||||||
|
sentence = '''%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?'''
|
||||||
|
|
||||||
|
print(clean_text(sentence));
|
||||||
|
I am a teacher and I love teaching There is nothing as more rewarding as educating and empowering people I found teaching more interesting than any other jobs Does this motivate you to be a teacher
|
||||||
|
print(most_frequent_words(cleaned_text)) # [(3, 'I'), (2, 'teaching'), (2, 'teacher')]
|
||||||
|
```
|
7
30-days-of-python/19_Manipulación_de_archivos/README.md
Normal file
7
30-days-of-python/19_Manipulación_de_archivos/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Manipulación de archivos
|
||||||
|
|
||||||
|
Documento original en inglés: [file handling](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/19_Day_File_handling/19_file_handling.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
@ -0,0 +1,7 @@
|
|||||||
|
# Gestor de paquetes de Python
|
||||||
|
|
||||||
|
Documento original en inglés: [python package manager](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/20_Day_Python_package_manager/20_python_package_manager.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/21_Clases_y_objetos/README.md
Normal file
7
30-days-of-python/21_Clases_y_objetos/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Clases y objetos
|
||||||
|
|
||||||
|
Documento original en inglés: [Classes and Objects](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/21_Day_Classes_and_objects/21_classes_and_objects.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/22_Web_scraping/README.md
Normal file
7
30-days-of-python/22_Web_scraping/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Web scraping
|
||||||
|
|
||||||
|
Documento original en inglés: [Web Scraping](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/22_Day_Web_scraping/22_web_scraping.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/23_Entorno_virtual/README.md
Normal file
7
30-days-of-python/23_Entorno_virtual/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Entorno virtual
|
||||||
|
|
||||||
|
Documento original en inglés: [Virtual Environment](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/23_Day_Virtual_environment/23_virtual_environment.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/24_Estadísticas/README.md
Normal file
7
30-days-of-python/24_Estadísticas/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Estadísticas
|
||||||
|
|
||||||
|
Documento original en inglés: [statistics](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/24_Day_Statistics/24_statistics.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/25_Pandas/README.md
Normal file
7
30-days-of-python/25_Pandas/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Pandas
|
||||||
|
|
||||||
|
Documento original en inglés: [Pandas](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/25_Day_Pandas/25_pandas.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/26_Desarrollo_web_en_Python/README.md
Normal file
7
30-days-of-python/26_Desarrollo_web_en_Python/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Desarrollo web en Python
|
||||||
|
|
||||||
|
Documento original en inglés: [Python web](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/26_Day_Python_web/26_python_web.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/27_Python_con_MongoDB/README.md
Normal file
7
30-days-of-python/27_Python_con_MongoDB/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Python con MongoDB
|
||||||
|
|
||||||
|
Documento original en inglés: [Python with MondoDB](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/27_Day_Python_with_mongodb/27_python_with_mongodb.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/28_API/README.md
Normal file
7
30-days-of-python/28_API/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# API
|
||||||
|
|
||||||
|
Documento original en inglés: [API](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/28_Day_API/28_API.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
7
30-days-of-python/29_Construcción_de_API/README.md
Normal file
7
30-days-of-python/29_Construcción_de_API/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Construcción de API
|
||||||
|
|
||||||
|
Documento original en inglés: [Building an API](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/29_Day_Building_API/29_building_API.md)
|
||||||
|
|
||||||
|
## Ejercicios
|
||||||
|
|
||||||
|
...
|
40
30-days-of-python/README.md
Normal file
40
30-days-of-python/README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Ejercicios del Repo 30-Days-of-Python
|
||||||
|
|
||||||
|
Estos apuntes y ejercicios en python han sido realizados siguiendo un repositorio de [Asabeneh](https://github.com/Asabeneh):
|
||||||
|
- [30 Days of Python](https://github.com/Asabeneh/30-Days-Of-Python)
|
||||||
|
|
||||||
|
El reposotorio original está en inglés, pero he traducido los ejercicios al español, así como los apuntes que he creído convenientes resaltar.
|
||||||
|
|
||||||
|
## Índice del curso y apuntes realizados
|
||||||
|
|
||||||
|
| # Día | Temas |
|
||||||
|
| ----- | :----------------------------------------------------------------------------------: |
|
||||||
|
| 01 | [Introducción](./01_Introducción/README.md) |
|
||||||
|
| 02 | [Variables, Funciones Incorporadas](./02_Variables_funciones_incorporadas/README.md) |
|
||||||
|
| 03 | [Operadores](./03_Operadores/README.md) |
|
||||||
|
| 04 | [Cadenas](./04_Cadenas/README.md) |
|
||||||
|
| 05 | [Listas](./05_Listas/README.md) |
|
||||||
|
| 06 | [Tuplas](./06_Tuplas/README.md) |
|
||||||
|
| 07 | [Conjuntos](./07_Conjuntos/README.md) |
|
||||||
|
| 08 | [Diccionarios](./08_Diccionarios/README.md) |
|
||||||
|
| 09 | [Condicionales](./09_Condicionales/README.md) |
|
||||||
|
| 10 | [Bucles](./10_Bucles/README.md) |
|
||||||
|
| 11 | [Funciones](./11_Funciones/README.md) |
|
||||||
|
| 12 | [Módulos](./12_Módulos/README.md) |
|
||||||
|
| 13 | [Comprensión de Listas](./13_Comprensión_de_listas/README.md) |
|
||||||
|
| 14 | [Funciones de Orden Superior](./14_Funciones_de_orden_superior/README.md) |
|
||||||
|
| 15 | [Errores de Tipo en Python](./15_Errores_de_tipo_en_python/README.md) |
|
||||||
|
| 16 | [Fecha y Hora en Python](./16_Fecha_y_hora_en_python/README.md) |
|
||||||
|
| 17 | [Manejo de Excepciones](./17_Manejo_de_excepciones/README.md) |
|
||||||
|
| 18 | [Expresiones Regulares](./18_Expresiones_regulares/README.md) |
|
||||||
|
| 19 | [Manipulación de Archivos](./19_Manipulación_de_archivos/README.md) |
|
||||||
|
| 20 | [Gestor de Paquetes de Python](./20_Gestor_de_paquetes_de_Python/README.md) |
|
||||||
|
| 21 | [Clases y Objetos](./21_Clases_y_objetos/README.md) |
|
||||||
|
| 22 | [Web Scraping](./22_Web_scraping/README.md) |
|
||||||
|
| 23 | [Entorno Virtual](./23_Entorno_virtual/README.md) |
|
||||||
|
| 24 | [Estadísticas](./24_Estadísticas/README.md) |
|
||||||
|
| 25 | [Pandas](./25_Pandas/README.md) |
|
||||||
|
| 26 | [Desarrollo Web en Python](./26_Desarrollo_web_en_Python/README.md) |
|
||||||
|
| 27 | [Python con MongoDB](./27_Python_con_MongoDB/README.md) |
|
||||||
|
| 28 | [API](./28_API/README.md) |
|
||||||
|
| 29 | [Construcción de API](./29_Construcción_de_API/README.md) |
|
Loading…
Reference in New Issue
Block a user