Update README & add catch-all
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
parent
897c383904
commit
6f8fa5ee62
@ -3,7 +3,7 @@
|
|||||||
Estos apuntes y ejercicios en python han sido realizados siguiendo un repositorio de [Asabeneh](https://github.com/Asabeneh):
|
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)
|
- [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.
|
El repositorio 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
|
## Índice del curso y apuntes realizados
|
||||||
|
|
||||||
|
15
README.md
15
README.md
@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
Este repositorio contiene los apuntes tomados en diversos cursos de python reflejados en la siguiente tabla:
|
Este repositorio contiene los apuntes tomados en diversos cursos de python reflejados en la siguiente tabla:
|
||||||
|
|
||||||
| Curso | Ubicación | Nivel | Duración de vídeos | Duración personal aprox. | Fuente original |
|
| Nombre del curso <br> y ubicación | Nivel | Duración <br> de vídeos | Duración personal <br> aprox. | Fuente original |
|
||||||
| --------------------: | :---------------------------------------------- | :--------: | :----------------: | :----------------------: | :------------------------------------------------------------------------------------------------------ |
|
| ---------------------------------------------------------: | :--------: | :---------------------: | :---------------------------: | :------------------------------------------------------------------------------------------------------ |
|
||||||
| HolaMundo | [contenidos](./HolaMundo/README.md) | Bajo | 5 horas | 15 horas | [Aprende python ahora!](https://www.youtube.com/watch?v=tQZy0U8s9LY&ab_channel=HolaMundo) |
|
| [HolaMundo](./HolaMundo/README.md) | Bajo | 5 horas | 15 horas | [Aprende python ahora!](https://www.youtube.com/watch?v=tQZy0U8s9LY&ab_channel=HolaMundo) |
|
||||||
| Python total | [contenidos](./python-total/README.md) | Intermedio | 30 horas | 200 horas | [Escuela Directa](https://www.udemy.com/course/python-total) |
|
| [Python total](./python-total/README.md) | Intermedio | 30 horas | 200 horas | [Escuela Directa](https://www.udemy.com/course/python-total) |
|
||||||
| Python y ChatGPT | [contenidos](./python-chatgpt/README.md) | Intermedio | 2 horas | 15 horas | [Escuela Directa](https://www.udemy.com/course/python-chatgpt/), [ChapGPT](https://www.chat.openai.com) |
|
| [Python y ChatGPT](./python-chatgpt/README.md) | Intermedio | 2 horas | 15 horas | [Escuela Directa](https://www.udemy.com/course/python-chatgpt/), [ChapGPT](https://www.chat.openai.com) |
|
||||||
| scripts-hacking-etico | [contenidos](./scripts-hacking-etico/README.md) | Avanzado | --- | 5 horas | [ChapGPT](https://www.chat.openai.com), [Canal Telegram](https://t.me/seguridadinformatic4) |
|
| [30 days of python](./30-days-of-python/README.md) | Intermedio | --- | próximamente | [Repo Asabeneh](https://github.com/Asabeneh/30-Days-Of-Python) |
|
||||||
| 30 days of python | [contenidos](./30-days-of-python/README.md) | Intermedio | --- | próximamente | [Repo Asabeneh](https://github.com/Asabeneh/30-Days-Of-Python) |
|
| [scripts-hacking-etico](./scripts-hacking-etico/README.md) | Avanzado | --- | 5 horas | [ChapGPT](https://www.chat.openai.com), [Canal Telegram](https://t.me/seguridadinformatic4) |
|
||||||
|
| [Cajón de sastre](./Catch-all/README.md) | Intermedio | --- | continua | [Personal](https://vergaracarmona.es) |
|
||||||
|
|
||||||
Las prácticas y ejercicios aquí contenidos son los que hice mediante los cursos mencionados o por investigación propia, con mucho café para combatir el insomnio. Realmente, los apuntes no fueron pensados para compartirlos, por ello pueden tener lagunas de información o contenido adicional respecto al curso, ya que se redactaron para recordar procedimientos y conceptos que EMHO me parecieron relevantes. Teniendo estos documentos tan completos y entendiendo que el conocimiento debe ser libre, se decidió compartirlos. Si encuentras **cualquier error puedes abrir una issue o contactar conmigo**.
|
Las prácticas y ejercicios aquí contenidos son los que hice mediante los cursos mencionados o por investigación propia, con mucho café para combatir el insomnio. Realmente, los apuntes no fueron pensados para compartirlos, por ello pueden tener lagunas de información o contenido adicional respecto al curso, ya que se redactaron para recordar procedimientos y conceptos que EMHO me parecieron relevantes. Teniendo estos documentos tan completos y entendiendo que el conocimiento debe ser libre, se decidió compartirlos. Si encuentras **cualquier error puedes abrir una issue o contactar conmigo**.
|
||||||
|
|
||||||
|
53
catch-all/01_scripts_words_linux/random_pass.py
Normal file
53
catch-all/01_scripts_words_linux/random_pass.py
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
"""
|
||||||
|
Random Password Generator
|
||||||
|
=========================
|
||||||
|
Genera una contraseña aleatoria con el número
|
||||||
|
de palabras que indiques a partir de un archivo
|
||||||
|
de palabras de Linux ubicado en la mayoría
|
||||||
|
de las distribuciones en /usr/share/dict/words
|
||||||
|
|
||||||
|
Despues, pregunta al usuario si desea mezclar
|
||||||
|
las letras de la contraseña generada.
|
||||||
|
"""
|
||||||
|
import random
|
||||||
|
|
||||||
|
# Ruta al archivo de palabras en Linux (puede variar según la distribución)
|
||||||
|
word_file = '/usr/share/dict/words'
|
||||||
|
|
||||||
|
# Función para generar una contraseña aleatoria
|
||||||
|
|
||||||
|
|
||||||
|
def generate_password(word_file, num_words):
|
||||||
|
with open(word_file, 'r') as file:
|
||||||
|
words = [line.strip() for line in file.readlines()]
|
||||||
|
|
||||||
|
# Seleccionar un número de palabras al azar
|
||||||
|
password_words = random.sample(words, num_words)
|
||||||
|
|
||||||
|
# Combinar las palabras para formar la contraseña
|
||||||
|
password = ''.join(password_words)
|
||||||
|
|
||||||
|
return password
|
||||||
|
|
||||||
|
# Función para mezclar las letras de una cadena
|
||||||
|
|
||||||
|
|
||||||
|
def shuffle_letters(input_string):
|
||||||
|
letters = list(input_string)
|
||||||
|
random.shuffle(letters)
|
||||||
|
return ''.join(letters)
|
||||||
|
|
||||||
|
|
||||||
|
# Preguntar al usuario cuántas palabras desea en la contraseña
|
||||||
|
num_words = int(input("Número de palabras para la contraseña: "))
|
||||||
|
|
||||||
|
# Generar una contraseña aleatoria con el número de palabras especificado
|
||||||
|
random_password = generate_password(word_file, num_words)
|
||||||
|
print("Contraseña aleatoria generada:", random_password)
|
||||||
|
|
||||||
|
# Preguntar al usuario si desea mezclar las letras
|
||||||
|
mezclar_letras = input(
|
||||||
|
"¿Desea mezclar las letras de la contraseña? (s/n): ").lower()
|
||||||
|
if mezclar_letras == 's':
|
||||||
|
random_password = shuffle_letters(random_password)
|
||||||
|
print("Contraseña con letras mezcladas:", random_password)
|
42
catch-all/01_scripts_words_linux/random_text.py
Normal file
42
catch-all/01_scripts_words_linux/random_text.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
"""
|
||||||
|
random text generator
|
||||||
|
=====================
|
||||||
|
Genera un texto aleatorio a partir de un archivo
|
||||||
|
de palabras de Linux ubicado en la mayoría
|
||||||
|
de las distribuciones en /usr/share/dict/words
|
||||||
|
|
||||||
|
Pregunta al usuario el número de párrafos
|
||||||
|
y palabras por párrafo.
|
||||||
|
|
||||||
|
Se puede utilizar a modo de lorem ipsum.
|
||||||
|
"""
|
||||||
|
import random
|
||||||
|
|
||||||
|
# Ruta al archivo de palabras en Linux (puede variar según la distribución)
|
||||||
|
word_file = '/usr/share/dict/words'
|
||||||
|
|
||||||
|
# Función para generar texto aleatorio
|
||||||
|
|
||||||
|
|
||||||
|
def generate_random_text(word_file, num_words=50):
|
||||||
|
with open(word_file, 'r') as file:
|
||||||
|
words = [line.strip() for line in file.readlines()]
|
||||||
|
|
||||||
|
# Seleccionar un número de palabras al azar
|
||||||
|
random_words = random.sample(words, num_words)
|
||||||
|
|
||||||
|
# Combinar las palabras para formar el texto
|
||||||
|
random_text = ' '.join(random_words)
|
||||||
|
|
||||||
|
return random_text
|
||||||
|
|
||||||
|
|
||||||
|
# Preguntar al usuario el número de párrafos y palabras por párrafo
|
||||||
|
num_paragraphs = int(input("Número de párrafos a generar: "))
|
||||||
|
num_words_per_paragraph = int(input("Número de palabras por párrafo: "))
|
||||||
|
|
||||||
|
# Generar los párrafos de texto aleatorio
|
||||||
|
print("Texto aleatorio generado:")
|
||||||
|
for _ in range(num_paragraphs):
|
||||||
|
random_paragraph = generate_random_text(word_file, num_words_per_paragraph)
|
||||||
|
print(random_paragraph, "\n")
|
11
catch-all/README.md
Normal file
11
catch-all/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Ejercicios del cajón de sastre Python
|
||||||
|
|
||||||
|
Aquí iré dejando scripts y ejercicios que se me ocurran, con lo que no hay un orden ni un objetivo concreto. Simplemente, me apetece ir practicando y aprendiendo Python.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Índice de ejercicios
|
||||||
|
|
||||||
|
| Nombre | Descripción | Nivel |
|
||||||
|
| ---------------------------------------: | :--------------------------------------------- | :--------: |
|
||||||
|
| [Words Linux](./01_scripts_words_linux/) | Scritp con el fichero: `/usr/share/dict/words` | intermedio |
|
Loading…
Reference in New Issue
Block a user