0
respostas

Desafio: hora da prática - funções

# AQUECIMENTO
1. lista = [16, 14, 63, 65, 17, 99, 70, 11, 20, 48, 79, 32, 17, 89, 12, 25, 66]
tamanho = len(lista)
maior = max(lista)
menor = min(lista)
soma = sum(lista)
print(f"A lista possui {tamanho} números em que o maior número é {maior} e o menor número {menor}.\nA soma dos valores presentes nela é igaul a {soma}")

2. def gerar_tabuada(numero: int):
    print(f"Tabuada do {numero}:")
    for i in range(10):
        print(f"{numero} x {i} = {numero * i}")
num_usuario = int(input("Digite um número inteiro para ver a tabuada: "))
gerar_tabuada(num_usuario)

3. [97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99] 
def multiplos_3(lista: list) -> list:
    multiplos = []
    for numero in lista:
        if numero % 3 == 0:
        multiplos.append(numero)
    return multiplos
mult_3 = multiplos_3(lista_numeros)
print(mult_3)

4. lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista_quadrados = list(map(lambda numero: numero ** 2, lista))
print(lista_quadrados)

# APLICANDO
5. pontuacao_final = []
for i in range(1, 6):
    usuario = float(input(f"Digite a nota do jurado {i}: ").replace(",", "."))
    pontuacao_final.append(usuario)
soma = sum(pontuacao_final)
maxima = max(pontuacao_final)
minima = min(pontuacao_final)
soma_pontuacao = soma - maxima - minima
media = soma_pontuacao / 3
print(f"Nota da manobra: {media:.2f}")

6. def desempenho(notas: list):
    maior = max(notas)
    menor = min(notas)
    media = sum(notas) / 4
    if media >= 6.0:
        status = "Aprovado(a)!"
    else:
        status = "Reprovado(a)!"
    return maior, menor, media, status 
maior, menor, media, status = desempenho(notas)
print(f"O(a) estudante obteve uma média de {media:.1f}, com a sua maior nota de {maior} pontos e a maenor de {menor} pontos e foi {status}")

7. nomes = ["joão", "MaRia", "JOSÉ"]
sobrenomes = ["SILVA", "souza", "Tavares"]

nome_completo = list(map(lambda n, s: f"{n} {s}".title(), nomes, sobrenomes))
print(nome_completo)

for nome in nome_completo:
    print(f"Nome completo: {nome}")

8. gols_marcados = [2, 1, 3, 1, 0]
gols_sofridos = [1, 2, 2, 1, 3]
def calcular_pontos(marcados, sofridos):
    pontos = 0
    for m, s in zip(marcados, sofridos):
        if m > s:
            pontos += 3
        elif m == s:
            pontos += 1
        else:
            pontos += 0 
    total_jogos = len(marcados) # Total da lista
    ponto_max = total_jogos * 3 
    aproveitamento = (pontos / pontos_max) * 100   
        derrota
    return pontos, aproveitamento
total_pontos, porcentagem = calcular_pontos(gols_marcados, gols_sofridos)
print(f"A pontuação do time foi de {total_pontos} pontos e seu aproveitamento foi de {porcentagem:.1f}% ")

9. dados_cidades = {
    "Salvador": [850, 200],
    "Fortaleza": [800, 400],
    "Natal": [300, 250],
    "Aracaju": [550, 300]
} # Um dic onde a cidade puxa a [distancia, gasto_passeio]

def gasto_hotel(dias):
    return dias * 150
def gasto_gasolina(cidade):
    distancia_ida = dados_cidades[cidade][0] # Pega distância
    distancia_total = distancia_ida * 2
    litros_usado = distancia_total / 14 # Faz 14km/L
    custo_gasolina = litros_usado * 5 # Gasolina = R$5.00L
    return custo_gasolina
def gasto_passeio(cidade, dias):
    valor_diario = dados_cidades[cidade][1] # Pega valor passeio
    return valor_diario * dias
cidade_escolhida = "Salvador"
dias_viagem = 3
total_hotel = gasto_hotel(dias_viagem)
total_gasolina = gasto_gasolina(cidade_escolhida)
total_passeio = gasto_passeio(cidade_escolhida, dias_viagem)
custo_total = total_hotel + total_gasolina + total_passeio
print(f"Com base nos gastos definidos, um viagem de {dias_viagem} dias para {cidade_escolhida} terá o custo total de R$ {custo_total:.2f}")
print(f"Detalhamento: Hotel: R${total_hotel:.2f} | Gasolina: R${total_gasolina:.2f} | Passeios: R${total_passeio:.2f}")

10. frase = "Aprender Python aqui na Alura é muito bom"
frase_limpa = frase.replace(",", " ").replace(".", " ").replace("!", "").replace("?", " ")
palavras = frase_limpa.split() # Transforma em lista
palavras_grandes = list(filter(lambda p: len(p) >= 5, palavras))
print(palavras_grandes)