From 13f01de3616a8264882d6f473e4051b2d89812cc Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Tue, 26 Sep 2023 19:44:50 +0200 Subject: [PATCH] Add exercises 12 Signed-off-by: Manuel Vergara --- 30-days-of-python/12_Módulos/01_modulos.py | 156 +++++++++++++++++++++ 30-days-of-python/12_Módulos/README.md | 2 + 2 files changed, 158 insertions(+) create mode 100644 30-days-of-python/12_Módulos/01_modulos.py diff --git a/30-days-of-python/12_Módulos/01_modulos.py b/30-days-of-python/12_Módulos/01_modulos.py new file mode 100644 index 0000000..cd5e29a --- /dev/null +++ b/30-days-of-python/12_Módulos/01_modulos.py @@ -0,0 +1,156 @@ +""" +01_modulos.py +""" +import random +import string + +# Ejercicios: Nivel 1 + +# 1. Escribe una función que genere +# un identificador de usuario aleatorio +# de seis dígitos/caracteres. + + +def random_user_id(): + contra = ''.join(random.choices( + string.ascii_lowercase + string.digits, k=6)) + + return contra + + +print(random_user_id()) + +# 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. +# ``` + + +def user_id_gen_by_user(): + n = int(input("Ingrese el número de caracteres: ")) + m = int(input("Ingrese el número de IDs a generar: ")) + user_ids = [] + for i in range(m): + user_id = ''.join(random.choices( + string.ascii_lowercase + string.digits, k=n)) + user_ids.append(user_id.upper()) + return '\n'.join(user_ids) + + +print(user_id_gen_by_user()) + + +# 3. Escribe una función llamada rgb_color_gen +# que generará colores RGB +# (3 valores que van desde 0 hasta 255 cada uno). + +def rgb_color_gen(): + r = random.randint(0, 255) + g = random.randint(0, 255) + b = random.randint(0, 255) + + return f"rgb({r},{g},{b})" + + +print(rgb_color_gen()) + + +# ### 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 #). + + +def list_of_hexa_colors(n): + hexa_colors = [] + for i in range(n): + hexa_color = ''.join([random.choice('0123456789abcdef') + for j in range(6)]) + hexa_colors.append(f"#{hexa_color}") + return hexa_colors + + +print(list_of_hexa_colors(5)) + + +# 2. Escribe una función llamada +# list_of_rgb_colors que devuelva +# cualquier cantidad de colores RGB +# en una lista. + +def list_of_rgb_colors(n): + rgb_colors = [] + for i in range(n): + r = random.randint(0, 255) + g = random.randint(0, 255) + b = random.randint(0, 255) + rgb_colors.append(f"rgb({r},{g},{b})") + return rgb_colors + + +print(list_of_rgb_colors(5)) + + +# 3. Escribe una función llamada +# generate_colors que pueda generar +# cualquier cantidad de colores +# hexadecimales o RGB. + +def generate_colors(): + color_type = input("¿hexa o rgb? ") + n = int(input("¿Cuántos colores? ")) + colors = [] + if color_type == 'hexa': + for i in range(n): + hexa_color = ''.join( + [random.choice('0123456789abcdef') for j in range(6)]) + colors.append(f"#{hexa_color}") + elif color_type == 'rgb': + for i in range(n): + r = random.randint(0, 255) + g = random.randint(0, 255) + b = random.randint(0, 255) + colors.append(f"rgb({r},{g},{b})") + return colors + + +print(generate_colors()) + + +# ### Ejercicios: Nivel 3 + +# 1. Llama a tu función shuffle_list, +# toma una lista como parámetro +# y devuelve una lista mezclada. + +def shuffle_list(lst): + random.shuffle(lst) + return lst + + +my_list = list(range(50)) +print(shuffle_list(my_list)) + +# 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. + + +def unique_random_numbers(): + numbers = [] + while len(numbers) < 7: + number = random.randint(0, 9) + if number not in numbers: + numbers.append(number) + return numbers + + +print(unique_random_numbers()) diff --git a/30-days-of-python/12_Módulos/README.md b/30-days-of-python/12_Módulos/README.md index ef8f768..921b607 100644 --- a/30-days-of-python/12_Módulos/README.md +++ b/30-days-of-python/12_Módulos/README.md @@ -62,3 +62,5 @@ generate_colors('rgb', 1) 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. + +[Solución](01_modulos.py)