practicas_data_science.py
import random import math import datetime
1 - Leer lista y mostrar tamaño, máximo, mínimo y suma
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 del 1 al 10 para un número elegido
n = int(input("Ingresa un número entero para su tabla de multiplicar: "))
print(f"Tabla del {n}:")
for i in range(0, 11):
print(f"{n} x {i} = {n * i}")
3 - Filtrar múltiplos de 3 de una lista dada
datos = [97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99]
multiplos_de_3 = [x for x in datos if x % 3 == 0]
print("Múltiplos de 3:", multiplos_de_3)
4 - Lista de cuadrados usando lambda y map()
origen = [1,2,3,4,5,6,7,8,9,10]
cuadrados = list(map(lambda x: x**2, origen))
print("Cuadrados:", cuadrados)
Aplicando a proyectos
5 - Calcular la puntuación de un atleta a partir de 5 notas
notas = []
for i in range(1, 6):
nota = float(input(f"Ingrese la nota #{i}: "))
notas.append(nota)
promedio = sum(notas) / len(notas)
print(f"Puntuación final (promedio): {promedio:.2f}")
6 - Función que procesa 4 notas y retorna estadísticas y situación
def procesa_notas(notas):
mayor = max(notas)
menor = min(notas)
media = sum(notas) / len(notas)
situacion = "Aprobado(a)" if media >= 60 else "Reprobado(a)"
return mayor, menor, media, situacion
entradas = [float(input(f"Ingrese nota #{i}: ")) for i in range(1,5)]
mayor, menor, media, situacion = procesa_notas(entradas)
print(f"El estudiante obtuvo una media de {media:.2f}, con la mayor nota de {mayor:.2f} puntos y la menor nota de {menor:.2f} puntos y fue {situacion}.")
7 - Normalizar nombres y apellidos y crear lista de nombres completos
nombres = ["juan", "MaRia", "JOSÉ"]
apellidos = ["SILVA", "sosa", "Tavares"]
completos = list(map(lambda na: na[0].capitalize() + " " + na[1].capitalize(),
zip(nombres, apellidos)))
print("Nombres completos:", completos)
8 - Calcular puntos y rendimiento de un equipo de fútbol
def calcula_puntos(goles_marcados, goles_recibidos):
puntos = 0
partidos = len(goles_marcados)
for gm, gr in zip(goles_marcados, goles_recibidos):
if gm > gr:
puntos += 3
elif gm == gr:
puntos += 1
# si gm < gr: 0 puntos
max_puntos = partidos * 3
rendimiento = (puntos / max_puntos) * 100
return puntos, rendimiento
goles_marcados = [2, 1, 3, 1, 0]
goles_recibidos = [1, 2, 2, 1, 3]
puntos, desempeno = calcula_puntos(goles_marcados, goles_recibidos)
print(f"La puntuación del equipo fue {puntos} y su rendimiento fue {desempeno:.2f}%")
9 - Cálculo de gastos de viaje
def gasto_hotel(dias):
return 150 * dias
def gasto_gasolina(distancia_km):
consumo = 14 # km por litro
precio_litro = 5 # reales
# ida y vuelta
litros = (distancia_km * 2) / consumo
return litros * precio_litro
def gasto_paseo(dias, ciudad):
# índices: 0=Salvador, 1=Fortaleza, 2=Natal, 3=Aracaju
gastos_diarios = [200, 400, 250, 300]
return gastos_diarios[ciudades.index(ciudad)] * dias
ciudades = ["Salvador", "Fortaleza", "Natal", "Aracaju"]
distancias = [850, 800, 300, 550]
dias = 3
ciudad = "Salvador"
idx = ciudades.index(ciudad)
total_hotel = gasto_hotel(dias)
total_gasolina = gasto_gasolina(distancias[idx])
total_paseo = gasto_paseo(dias, ciudad)
total = total_hotel + total_gasolina + total_paseo
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 de longitud >= 5 de una frase usando lambda y filter()
frase = "Aprender Python aquí en Alura es muy bueno"
for p in [",", ".", "!", "?"]:
frase = frase.replace(p, " ")
palabras = frase.split()
largas = list(filter(lambda w: len(w) >= 5, palabras))
print("Palabras con 5 o más caracteres:", largas)