Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Python para Data Science_primeros pasos_12 Desafío: ¡Es hora de practicar!-PARTE 1

Python para Data Science_primeros pasos_12 Desafío: ¡Es hora de practicar!-PARTE 1. ejercicios 1 a 5

## Enunciado 1: Calcular el promedio de gastos - Sugerencia: usa las funciones integradas sum() y len().
gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08] #lista de gastos
# Calcular el total de la suma de los gastos
suma_gastos = sum(gastos)
# Obtener el número total de elementos (gastos)
numero_gastos = len(gastos)
# Calcular el promedio de gastos
promedio_gastos = suma_gastos / numero_gastos
# Imprimir el resultado con formato a 2 decimales
print("Lista de gastos:", gastos)
print("Suma total de gastos:", suma_gastos)
print("Número de gastos:", numero_gastos)
print(f"El promedio de gastos es: {promedio_gastos:.2f}")

# **2 - Con los mismos datos de la pregunta anterior, determina cuántas compras se realizaron por encima de 3000 reales y calcula el porcentaje con respecto al total de compras.**
gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08] # Se usa la misma lista llamada gastos
umbral = 3000
compras_altas = 0  # compras_altas es el contador de compras que superan el umbral
# Ciclo para Iterar sobre la lista de gastos para contar las compras mayores al umbral
for gasto in gastos:
    if gasto > umbral:
        compras_altas = compras_altas + 1  # tambien: compras_altas += 1

# Obtener el total de compras
total_compras = len(gastos)
# Calcular el porcentaje de compras altas
porcentaje_alto = (compras_altas / total_compras) * 100

# Imprimir los resultados
print("Umbral de compra:", umbral)
print("Total de compras realizadas:", total_compras)
print("Compras por encima de", umbral, "reales:", compras_altas)
print("Porcentaje de compras por encima de", umbral, "reales:", f"{porcentaje_alto:.2f}%") #se formatea salida a 2 posiciones deciimales


# **3 - 3 - Crea un código que recoja en una lista 5 números enteros aleatorios e imprima la lista. Ejemplo: [1, 4, 7, 2, 4]..**
# importa el módulo random
import random

lista_aleatoria = []
cantidad_numeros = 5
limite_inferior = 1
limite_superior = 100 # Se elige un rango para los números

# Usar un Ciclo While para generar la cantidad deseada de números
i = 0
while i < cantidad_numeros:
    # Generar un número entero aleatorio en el rango [limite_inferior, limite_superior]
    # random.randint(): Es la función que genera el número entero aleatorio.
    numero = random.randint(limite_inferior, limite_superior)
    lista_aleatoria.append(numero) # adiciona a la lista por el final el Nro aleatorio
    i = i + 1  # tambien i += 1

# Imprimir la lista resultante
print("Lista de", cantidad_numeros, "números enteros aleatorios:", lista_aleatoria) # Ejemplo: [1, 4, 7, 2, 4]

#**4 - Recoge nuevamente 5 números enteros e imprime la lista en orden inverso al enviado.**
## Metodo 1 - utilizando slicing
# Recoger 5 números enteros (se usará una lista fija para simplificar el código sin input). Se puede usar un ciclo para cargar la lista con 5 elementos
lista_original = [10, 20, 30, 40, 50]

# Imprimir la lista en orden inverso utilizando slicing [::-1]
lista_inversa = lista_original[::-1]
print("Lista de 5 números enteros:", lista_original)
print("Lista en orden inverso:", lista_inversa)

## Metodo 2 - usando metodo reverse
lista_original.reverse()
print("Lista en orden inverso usando metodo reverse:", lista_original)


# **5 - Crea un programa que, al ingresar un número cualquiera, genere una lista que contenga todos los números primos entre 1 y el número ingresado.**
# Número de entrada 
numero_limite = int(input("Introduce el número límite: "))

# Inicializar la lista para almacenar los números primos
lista_primos = []

# Iterar desde 1 hasta el número ingresado
numero = 1
while numero <= numero_limite:
    es_primo = True # Asumir que el número es primo al principio

    # 0 y 1 no son números primos, por definición
    if numero < 2:
        es_primo = False
    else:
        # Optimización: solo se comprueban divisores hasta la raíz cuadrada del número
        divisor = 2
        # La condición del ciclo o bucle se puede simplificar a divisor * divisor <= numero, pero
        # para mantener la simplicidad y evitar la función pow() o ** se usa int(numero**0.5) #la raiz cuadrada es potencia de 0.5
        limite_divisor = int(numero**0.5) + 1

        while divisor < limite_divisor:
            if numero % divisor == 0:
                es_primo = False
                break # Si encuentra un divisor, no es primo y se sale
            divisor = divisor + 1 # incrementa la cant de divisores

    if es_primo:
        lista_primos.append(numero)

    numero = numero + 1 # numero += 1

# Imprimir la lista resultante
print("Número límite ingresado:", numero_limite)
print("Números primos entre 1 y", numero_limite, ":", lista_primos)
1 respuesta

Hola,

Gracias por compartir tu código con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!