1
resposta

Desafio: Funções

  • Questão 1
lista = [16, 14, 63, 65, 17, 99, 70, 11, 20, 48, 79, 32, 17, 89, 12, 25, 66]

tam = len(lista)
menor = min(lista)
maior = max(lista)
soma = sum(lista)
print(f'A lista possui {tam} números em que o maior número é {maior} e o menor número é {menor}. A soma dos valores presentes nela é igual a {soma}')
  • Questão 2
tabuada = int(input('Insira um numero para ver sua tabuada: '))
print(f'Tabuada do {tabuada}:')

for dados in range(1, 11):
    resultado = tabuada * dados
    print(f'{tabuada} x {dados} = {resultado}')
  • Questão 3
lista = [97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99]
def mult(lista):
    mult_3 = []
    for num in lista:
        if num % 3 == 0:
            mult_3.append(num)
    return(mult_3)
mult_3 = mult(lista)
print(mult_3)
  • Questão 4
lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quadrados = list(map(lambda x: x**2, lista))

print(lista)
print(quadrados)
  • Questão 5
def calc_nota():

  notas = []
  q_jurados = 0

  while q_jurados < 5:
    jurado = input('Digite sua nota: ')
    notas.append(float(jurado))
    q_jurados += 1

  menor = min(notas)
  maior = max(notas)

  notas.remove(maior)
  notas.remove(menor)

  media = sum(notas) / len(notas)

  return media

nota_f = calc_nota()
print(f'Nota da manobra: {nota_f}')
  • Questão 6
def notas_alunos():

    n_aluno = []
    q_notas = 0

    while q_notas < 4:
        nota = input('Digite sua nota: ')
        n_aluno.append(float(nota))
        q_notas += 1

    tam = len(n_aluno)
    menor = min(n_aluno)
    maior = max(n_aluno)
    soma = sum(n_aluno)
    media = soma / tam

    if media >=7:
        situacao = "Aprovado"
    else:
        situacao = "Reprovado"

    return(media, maior, menor, situacao)

media, maior, menor, situacao = notas_alunos()

print(f'O(a) estudante obteve uma média de {media}, com a sua maior nota de {maior} pontos e a menor nota de {menor} pontos e foi {situacao}')
  • Questão 7
nomes = ["joão", "MaRia", "JOSÉ"]
sobrenomes = ["SILVA", "souza", "Tavares"]

def arrumar_nomes(nomes, sobrenomes):
    nomes = [nome.lower() for nome in nomes] 
    nomes = [nome.capitalize() for nome in nomes]

    sobrenomes = [sobrenome.lower() for sobrenome in sobrenomes] 
    sobrenomes = [sobrenome.capitalize() for sobrenome in sobrenomes] 

    return nomes, sobrenomes


nomes, sobrenomes = arrumar_nomes(nomes, sobrenomes)

lista_unida = list(map(lambda x, y: x + " " + y, nomes, sobrenomes))

for nome in lista_unida:
    print(f'Nome completo: {nome}')
  • Questão 8
def calcula_pontos (gols_marcados:list, gols_sofridos:list ) -> list:
    return [3 if m > s else 1 if m == s else 0 for m, s in zip(gols_marcados, gols_sofridos )]

gols_marcados = [2, 1, 3, 1, 0]
gols_sofridos = [1, 2, 2, 1, 3]

pontos = calcula_pontos(gols_marcados, gols_sofridos) 

total_pontos = sum(pontos)
aprov = (total_pontos / (len(gols_marcados) * 3)) * 100

print(f'A pontuação do time foi de {total_pontos} e seu aproveitamento foi de {aprov:.2f}%')
  • Questão 9
diaria = 3
estadia = 150
gasolina = 14
val_gasolina = 5
cidade = 'Salvador'

dados =  {'Salvador':{'dist':850, 'passeio':200}, 'Fortaleza':{'dist':800,'passeio':400}, 'Natal':{'dist':300, 'passeio':250}, 'Aracaju':{'dist':550,'passeio':300}}

def gasto_hotel():
    custo_hotel = diaria * estadia
    return(custo_hotel)

def gasto_gasolina ():
    dist = dados[cidade]['dist']  
    dist_tt = dist * 2
    consumo = dist_tt / gasolina
    custo_gasolina = consumo * val_gasolina
    return(custo_gasolina)

def gasto_passeio():
    info = dados[cidade]
    hotel = gasto_hotel()
    gasolina = gasto_gasolina()
    passeio = info['passeio'] * diaria
    custo_total = sum([hotel, gasolina, passeio])  
    return(custo_total)

c_passeio = gasto_passeio()
c_gasolina = gasto_gasolina()
c_hotel = gasto_hotel()

print(f'Com base nos gastos definidos, uma viagem de {diaria} dias para {cidade} saindo de Recife custaria R$ {c_passeio:.2f} reais')
  • Questão 10
def filtrar_palavras_longas(frase):


  frase = frase.replace(',', ' ').replace('.', ' ').replace('!', ' ').replace('?', ' ').lower()

  palavras = frase.split()
  
  palavras_filtradas = list(filter(lambda palavra: len(palavra) >= 5, palavras))  
  return palavras_filtradas


frase = input('Digite a fraze que gostaria de testar: ')
palavras_longas = filtrar_palavras_longas(frase)


print(f"Palavras com 5 ou mais caracteres: {palavras_longas}")
1 resposta

Oi, Maicon! Como vai?

Você fez um excelente trabalho implementando as soluções para as questões do desafio. Parabéns!

💡 Dica: Compartilho a função filter() , utilizada para filtrar elementos com base em uma condição. Veja o exemplo de código abaixo:


lista = [10, 15, 30, 45, 60]
resultado = list(filter(lambda x: x % 15 == 0, lista))
print(resultado)

O código acima filtra os números que são divisíveis por 15. A função filter() é útil quando você precisa de uma maneira mais compacta e legível de filtrar dados em uma lista.

Até mais!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!