Add course Python ofensivo

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
2023-12-13 23:00:26 +01:00
parent 5b62da6cf0
commit 086b1ca614
6 changed files with 136 additions and 14 deletions

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env python3
"""
Combinar listas
"""
# Ejercicio 1
odd_number = [1, 3, 5, 7, 9]
even_number = [2, 4, 6, 8, 10]
zip_numbers = zip(odd_number, even_number)
new_list = []
for odd, even in zip_numbers:
new_list.append(odd + even)
print(new_list)
# Ejercicio 2
odd_number = [1, 3, 5, 7, 9]
even_number = [2, 4, 6, 8, 10]
result = list(map(sum, zip(odd_number, even_number)))
print(result)

View File

@@ -0,0 +1,3 @@
# Cajón de sastre de ejercicios
...

View File

@@ -0,0 +1,50 @@
# Ejemplos de oneliner en Python
No solo está la opción del interprete de python, también puedes utilizar la opción `-c` del comando para crear un script en línea.
Ejemplos:
```bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
```
1. **Imprimir números del 1 al 10:**
```bash
python33 -c 'print([i for i in range(1, 11)])'
```
2. **Calcular la suma de los cuadrados de los números del 1 al 5:**
```bash
python33 -c 'print(sum([i**2 for i in range(1, 6)]))'
```
3. **Listar archivos en el directorio actual:**
```bash
python33 -c 'import os; print(os.listdir("."))'
```
4. **Imprimir la fecha y hora actual:**
```bash
python33 -c 'from datetime import datetime; print(datetime.now())'
```
5. **Contar las líneas en un archivo:**
```bash
python33 -c 'print(sum(1 for line in open("archivo.txt")))'
```
6. **Invertir una cadena:**
```bash
python33 -c 'cadena = "Hola mundo"; print(cadena[::-1])'
```
7. **Generar una lista de números pares del 0 al 8:**
```bash
python33 -c 'print([i for i in range(9) if i % 2 == 0])'
```
8. **Verificar si un número es primo:**
```bash
python33 -c 'n = 11; print("Primo" if all(n % i != 0 for i in range(2, int(n**0.5) + 1)) and n > 1 else "No primo")'
```

View File

@@ -0,0 +1,29 @@
# Shebang
Es más óptimo usar `#!/usr/bin/env python` que `#!/usr/bin/python` porque el primero busca el intérprete en el `PATH` del sistema, mientras que el segundo asume que el intérprete está en `/usr/bin/python`.
# Convenios Python
Por otro lado, el `if` siguiente es una convención para que el código que está dentro de él solo se ejecute si el script se ejecuta directamente, y no si se importa como módulo.
```python
if ___name___ == '___main___':
print('Soy el módulo principal')
else:
print('No soy el módulo principal')
```
Tener en cuenta que el nombre de las variables son en minúsculas, y si son varias palabras, se separan con guiones bajos, en snake_case Por ejemplo: `nombre_de_la_variable`.
Las Constantes son en mayúsculas, y si son varias palabras, se separan con guiones bajos, en SCREAMING_SNAKE_CASE. Por ejemplo: `NOMBRE_DE_LA_CONSTANTE`.
Las Clases son en UpperCamelCase, es decir, la primera letra de cada palabra en mayúsculas. Por ejemplo: `NombreDeLaClase`.
Las funciones son en minúsculas, y si son varias palabras, se separan con guiones bajos, en lowercamelcase. Por ejemplo: `nombredelafuncion`.
Las variables privadas se nombran con un guión bajo al principio. Por ejemplo: `_variable_privada`.

19
python-ofensivo/README.md Normal file
View File

@@ -0,0 +1,19 @@
# Apuntes del curso Python Ofensivo
_Confirmado, no es una serpiente que te insulta_
Estos apuntes y ejercicios en python son parte del curso de Python Ofensivo de [hack4u](https://hack4u.io):
- [Curso Python Ofensivo](https://hack4u.io/cursos/python-ofensivo/)
¡Te recomiendo que lo hagas cogiendo tus propios apuntes! Este repositorio es para mi uso personal, pero si te sirve de ayuda, ¡me alegro!
Quizá encuentres aquí cosas que no están en el vídeo, o viceversa, son apuntes personales 😊
![](https://c.tenor.com/-SV9TjUGabMAAAAC/hacker-python.gif)
| Ejercicios y apuntes |
| ------------------------------------------------------------ |
| 0. [Cajón de sastre de ejercicios](./00_cajon_sastre) |
| 1. [Ejemplos de oneliner en python](./01_oneliner/README.md) |
| 2. [Shebang y convenios](./02_shebang_convenios/README.md) |