Python para Data Science_primeros pasos_12 Desafío: ¡Es hora de practicar!-PARTE2. Ejercicios del 6 al 8
# **6 - Escribe un programa que pida una fecha, especificando el día, mes y año, y determine si es válida para su análisis.**
print("\nEnunciado 6: Determinar si una fecha (día, mes, año) es válida")
# Pedir la fecha al usuario - input
dia = int(input("Ingresa el día: "))
mes = int(input("Ingresa el mes: "))
anio = int(input("Ingresa el año: "))
# Variable para guardar si la fecha es válida
fecha_valida = True
# Verificación general de rangos válidos
if anio < 1 or mes < 1 or mes > 12 or dia < 1:
fecha_valida = False
else:
# Determinar si el año es bisiesto
"""
"si el año es divisible por 4 Y NO es divisible por 100, O es divisible por 400
Esta condición se usa comúnmente en programación para determinar si un año es bisiesto.
"""
if (anio % 4 == 0 and anio % 100 != 0) or (anio % 400 == 0):
bisiesto = True
else:
bisiesto = False
# Asignar días máximos según el mes
if mes in [1, 3, 5, 7, 8, 10, 12]:
dias_mes = 31
elif mes in [4, 6, 9, 11]:
dias_mes = 30
elif mes == 2:
if bisiesto:
dias_mes = 29
else:
dias_mes = 28
else:
fecha_valida = False
# Validar el día según el mes
if dia > dias_mes:
fecha_valida = False
# Mostrar resultado
print("Fecha a verificar:", str(dia) + "/" + str(mes) + "/" + str(anio))
if fecha_valida:
print("La fecha es válida para su análisis.")
else:
print("La fecha NO es válida para su análisis.")
### Momento para los proyectos
# **7 - Para un estudio sobre la multiplicación de bacterias en una colonia, se recopiló el número de bacterias multiplicadas por día y se puede observar a continuación: [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]. Con estos valores, crea un código que genere una lista que contenga el porcentaje de crecimiento de bacterias por día, comparando el número de bacterias en cada día con el número de bacterias del día anterior. Sugerencia: para calcular el porcentaje de crecimiento, utiliza la siguiente ecuación: $100 \times \frac{(\text{muestra\_actual} - \text{muestra\_anterior})}{\text{muestra\_anterior}}$.**
print("\nEnunciado 7: Calcular el porcentaje de crecimiento diario de bacterias")
bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
porcentajes_crecimiento = []
longitud_lista = len(bacterias)
# El cálculo comienza a partir del segundo día (índice 1)
i = 1
while i < longitud_lista:
muestra_actual = bacterias[i]
muestra_anterior = bacterias[i-1] # la muestra anterior tiene indice 1-1
# Aplicar la ecuación del porcentaje de crecimiento
diferencia = muestra_actual - muestra_anterior
porcentaje = 100 * (diferencia / muestra_anterior)
# Agregar el porcentaje a la lista (formateado como string para incluir el signo %)
porcentajes_crecimiento.append("{:.2f}%".format(porcentaje))
i = i + 1
print("Número de bacterias por día:", bacterias)
print("Porcentaje de crecimiento diario (lista):", porcentajes_crecimiento)
# **8 - Para una selección de productos alimenticios, debemos separar el conjunto de IDs proporcionados por números enteros,
# sabiendo que los productos con ID par son dulces y los que tienen ID impar son amargos. Crea un código que recoja 10 IDs.
# Luego, calcula y muestra la cantidad de productos dulces y amargos.**
print("\nEnunciado 8: Clasificar 10 IDs como dulces (pares) o amargos (impares)")
ids = []
cantidad_ids = 10
# Se simula la recolección de 10 IDs con valores fijos para no usar input
# En un entorno real, aquí iría la lógica para pedir 10 inputs - ver Alternativa 1
"""
Alternativa 1: Pedir 10 inputs y guardarlos en una lista. esta es la optima.
ids = []
for i in range(10):
# Pedimos el ID y lo convertimos a entero
id_usuario = int(input(f"Ingrese el ID fijo {i+1}: "))
ids.append(id_usuario)
print(ids)
"""
ids = [101, 202, 303, 404, 505, 606, 707, 808, 909, 1000]
dulces = 0 # ID par
amargos = 0 # ID impar
# Iterar sobre los IDs para clasificarlos
for id_val in ids:
# ID par (dulce) si el residuo de la división por 2 es 0
if id_val % 2 == 0:
dulces = dulces + 1
# ID impar (amargo) si el residuo de la división por 2 no es 0
else:
amargos = amargos + 1
# Imprimir los resultados
print("Lista de IDs:", ids)
print("Total de IDs:", len(ids))
print("Cantidad de productos dulces (ID par):", dulces)
print("Cantidad de productos amargos (ID impar):", amargos)