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

[Proyecto] Sección 2 Estructura de Datos con Python

Sección 2 Estructura de Datos con Python

# 1 - Análisis de lista
lista = [16, 14, 63, 65, 17, 99, 70, 11, 20, 48, 79, 32, 17, 89, 12, 25, 66]
tamano = len(lista)
mayor = max(lista)
menor = min(lista)
suma = sum(lista)
print(f"La lista tiene {tamano} números, donde el mayor es {mayor} y el menor es {menor}. La suma de los valores es {suma}.")

# 2 - Tabla de multiplicar
def tabla_multiplicar(numero):
    print(f"Tabla del {numero}:")
    for i in range(11):
        print(f"{numero} x {i} = {numero * i}")

# tabla_multiplicar(7) # descomentar para probar

# 3 - Múltiplos de 3
def multiplos_de_tres(lista):
    return [x for x in lista if x % 3 == 0]

# print(multiplos_de_tres([97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99]))

# 4 - Cuadrados usando lambda y map
lista = [1,2,3,4,5,6,7,8,9,10]
cuadrados = list(map(lambda x: x**2, lista))
print("Cuadrados:", cuadrados)

# 5 - Puntuación de skaters
def calcular_puntuacion():
    notas = []
    for i in range(5):
        nota = float(input(f"Ingrese la nota {i+1}: "))
        notas.append(nota)
    promedio = sum(notas) / len(notas)
    print(f"Puntuación promedio: {promedio}")

# 6 - Análisis de notas
def analizar_notas(notas):
    mayor = max(notas)
    menor = min(notas)
    media = sum(notas)/len(notas)
    situacion = "Aprobado(a)" if media >= 12 else "Reprobado(a)"
    print(f"El estudiante obtuvo una media de {media}, con la mayor nota de {mayor} puntos y la menor nota de {menor} puntos y fue {situacion}.")

# analizar_notas([15, 10, 18, 12])

# 7 - Nombres completos normalizados
nombres = ["juan", "MaRia", "JOSÉ"]
apellidos = ["SILVA", "sosa", "Tavares"]
nombres_completos = list(map(lambda n, a: n.capitalize() + " " + a.capitalize(), nombres, apellidos))
print("Nombres completos:", nombres_completos)

# 8 - Calculadora de puntos en campeonato
def calcula_puntos(goles_marcados, goles_recibidos):
    puntos = 0
    for gm, gr in zip(goles_marcados, goles_recibidos):
        if gm > gr:
            puntos += 3
        elif gm == gr:
            puntos += 1
    max_puntos = len(goles_marcados) * 3
    rendimiento = (puntos / max_puntos) * 100
    print(f"La puntuación del equipo fue {puntos} y su rendimiento fue {rendimiento:.2f}%")

# calcula_puntos([2, 1, 3, 1, 0], [1, 2, 2, 1, 3])

# 9 - Gastos de viaje
def gasto_hotel(dias):
    return dias * 150

def gasto_gasolina(distancia_km):
    return (distancia_km * 2 / 14) * 5

def gasto_paseo(dias, ciudad):
    gastos_dia = {"Salvador": 200, "Fortaleza": 400, "Natal": 250, "Aracaju": 300}
    return dias * gastos_dia[ciudad]

dias = 3
ciudad = "Salvador"
distancias = {"Salvador": 850, "Fortaleza": 800, "Natal": 300, "Aracaju": 550}

total = gasto_hotel(dias) + gasto_gasolina(distancias[ciudad]) + gasto_paseo(dias, ciudad)
print(f"Con base en los gastos definidos, un viaje de {dias} días a {ciudad} desde Recife costaría {total:.2f} reales.")

# 10 - Filtrar palabras con 5 o más letras
frase = input("Escribe una frase: ")
palabras = frase.split()
filtradas = list(filter(lambda p: len(p) >= 5, palabras))
print("Palabras con 5 o más caracteres:", filtradas)
1 respuesta

¡Hola Angel!

Veo que estás trabajando en varios ejercicios interesantes en Python. Algunas Revisiones:

  1. Puntuación de skaters: La función calcular_puntuacion() recoge cinco notas de entrada del usuario y calcula el promedio. Está bien, pero recuerda manejar posibles errores de entrada del usuario, como introducir un valor no numérico.

  2. Gastos de viaje: Has creado funciones separadas para calcular los gastos de hotel, gasolina y paseo, lo cual es una buena práctica para mantener el código organizado. La simulación del viaje a Salvador también está bien planteada.

  3. Filtrar palabras con 5 o más letras: Tu código para filtrar palabras de una frase usando filter() y lambda es correcto. Asegúrate de manejar adecuadamente los signos de puntuación como se sugiere en el consejo.

Parece que has hecho un gran trabajo en la implementación de las soluciones. Si tienes alguna pregunta específica sobre alguno de los puntos, no dudes en preguntar. ¡Espero que esto te ayude! Abrazos y buenos estudios!

Por favor, no olvides marcar este post como solucionado. ¡Es de gran ayuda para la comunidad! ✓ Sigue adelante con tus estudios.