Add exercises 12

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-09-26 19:44:50 +02:00
parent acfcd590da
commit 13f01de361
2 changed files with 158 additions and 0 deletions

View File

@ -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())

View File

@ -62,3 +62,5 @@ generate_colors('rgb', 1)
Ejercicios: Nivel 3 Ejercicios: Nivel 3
1. Llama a tu función shuffle_list, toma una lista como parámetro y devuelve una lista mezclada. 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. 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)