0
respostas

Exercícios - Desafio - Projetos

#DESAFIO HORA DA PRÁTICA

#APLICANDO A PROJETOS

#Exercio 5
notas_skate = []
for i in range(1,6):
  notas_skate.append(float(input(f'Infome a {i}ª nota: ')))

notas_skate.remove(max(notas_skate))
notas_skate.remove(min(notas_skate))
print(f'Nota da manobra: {sum(notas_skate) / len(notas_skate)}')

#Exercio 6

def situacao_aluno(lista_notas):
  maior_nota = max(lista_notas)
  menor_nota = min(lista_notas)
  media = sum(lista_notas) / len(lista_notas)
  if media >= 6:
    situacao = 'Aprovado(a)'
  else:
    situacao = 'Reprovado(a)'
  return maior_nota, menor_nota, media, situacao

notas = []
for i in range(1,5):
  notas.append(float(input(f'Digita a {i}ª nota: ')))
maior_nota, menor_nota, media, situacao = situacao_aluno(notas)
print(f'O(a) estudante obteve uma média de {media}, com a sua maior nota de {maior_nota} pontos e a menor nota de {menor_nota} pontos e foi {situacao}')

#Exercio 7

ajusta_string = lambda x: x.capitalize()
nomes = ["joão", "MaRia", "JOSÉ"]
nomes_tratados = list(map(ajusta_string, nomes))
sobrenomes = ["SILVA", "souza", "Tavares"]
sobrenomes_tratados = list(map(ajusta_string, sobrenomes))

for i in range(0, 3):
  print(f'Nome completo: {nomes_tratados[i]} {sobrenomes_tratados[i]}')

#Exercio 8

def calcula_pontos(gols_marcados, gols_sofridos):
  jogos = len(gols_marcados)
  pontos = []
  for i in range(0, jogos):
    if gols_marcados[i] > gols_sofridos[i]:
      pontos.append(3)
    elif gols_marcados[i] == gols_sofridos [i]:
      pontos.append(1)
    else:
      pontos.append(0)
  aproveitamento = (sum(pontos) / (len(pontos) * 3)) * 100
  return sum(pontos), aproveitamento

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

total_pontos, aproveitamento = calcula_pontos(gols_marcados, gols_sofridos)
print(f'A pontuação do time foi de {total_pontos} e seu aproveitamento foi de {aproveitamento:.2f}%')

#Exercio 9

def calcula_gastos_hotel(dias, diaria):
  return dias * diaria

def calcula_gastos_gasolina(consumo, litro, distancia):
  return ((distancia / consumo) * litro) * 2

def calcula_gastos_passeio_alimento(dias, passeio_alimento):
  return dias * passeio_alimento

diaria_hotel = 150.00
consumo_gasolina = 14.00
litro_gasolina = 5.00
passeio_alimentacao = {'Salvador': 200, 'Fortaleza': 400, 'Natal': 250, 'Aracaju': 300}
distancias_km = {'Salvador': 850, 'Fortaleza': 800, 'Natal': 300, 'Aracaju': 550}
dias_viagem = 0
destino = ''
gasto_hotel = 0
gasto_gasolina = 0
gasto_passeio_alimento = 0

while destino != 'Salvador' and destino != 'Fortaleza' and destino != 'Natal' and destino != 'Aracaju':
  destino = input('Para onde gostaria de viajar: Salvador? Fortaleza? Natal? Aracaju? Escolha um destino:').capitalize()
while dias_viagem <= 0:
  dias_viagem = int(input('Quantos dias você passar neste local? '))

gasto_hotel = calcula_gastos_hotel(dias_viagem, diaria_hotel)
gasto_gasolina = calcula_gastos_gasolina(consumo_gasolina, litro_gasolina, distancias_km[destino])
gasto_passeio_alimento = calcula_gastos_passeio_alimento(dias_viagem, passeio_alimentacao[destino])

print(f'Com base nos gastos definidos, uma viagem de {dias_viagem} dias para {destino} saindo de Recife custaria {gasto_hotel + gasto_gasolina + gasto_passeio_alimento:.2f} reais')
print(f'Detalhe dos gastos: \nGasolina: {gasto_gasolina:.2f} \nHotel: {gasto_hotel:.2f} \nPasseio e alimentação: {gasto_passeio_alimento:.2f}')

Tive um pouco de dificuldade com este exercício 10, especificamente no uso do filter e da função lambda. Dei uma olhada na solução do professor e vi que o dele ficou muito mais simples.

#Exercio 10

#frase para teste: Aprender Python aqui na Alura é muito bom! Não é verdade? E você, concorda comigo? Claro.

def trata_frase(frase):
  frase_tratada = frase.replace(',', ' ').replace('.', ' ').replace('!', ' ').replace('?', ' ')
  frase_tratada = frase_tratada.strip()
  frase_tratada = frase_tratada.split()
  return frase_tratada

frase = input('Digite uma frase para nossa análise: ')
frase_tratada = trata_frase(frase)

lista_palavras = []
verifica_palavras = lambda x: len(x) >= 5
for palavra in frase_tratada:
  if verifica_palavras(palavra) == True: lista_palavras.append(palavra)
print(f'Estas sãos as palavras com 5 ou mais caracteres: {lista_palavras}')