Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercicios 9-10

  1. Você recebeu o desafio de criar um código que calcula os gastos de uma viagem para um das quatro cidades partindo de Recife, sendo elas: Salvador, Fortaleza, Natal e Aracaju.
    O custo da diária do hotel é de 150 reais em todas elas e o consumo de gasolina na viagem de carro é de 14 km/l, sendo que o valor da gasolina é de 5 reais o litro. O gastos com passeios e alimentação a se fazer em cada uma delas por dia seria de [200, 400, 250, 300], respectivamente.
    Sabendo que as distâncias entre Recife e cada uma das cidades é de aproximadamente [850, 800, 300, 550] km, crie três funções nas quais: a 1ª função calcule os gastos com hotel (gasto_hotel), a 2ª calcule os gastos com a gasolina (gasto_gasolina) e a 3ª os gastos com passeio e alimentação (gasto_passeio).
    Para testar, simule uma viagem de 3 dias para Salvador partindo de Recife. Considere a viagem de ida e volta de carro.
    "Com base nos gastos definidos, uma viagem de [dias] dias para [cidade] saindo de Recife custaria [gastos] reais"
cidade = input('Informe a cidade destino: ')
dias = int(input('Informe quantos dias terá a viajem: '))

distancias = [850, 800, 300, 550] 
passeio = [200, 400, 250, 300]
diaria_hotel = 150
consumo_gasolina = 14
valor_gasolina = 5

def gasto_hotel(dias):
  diaria = diaria_hotel * dias
  return diaria

def gasto_gasolina(cidade):
  if cidade == 'Salvador':
     return (2 * distancias[0] * valor_gasolina)/ consumo_gasolina
  elif cidade == 'Fortaleza':
     return (2 * distancias[1] * valor_gasolina)/ consumo_gasolina
  elif cidade == 'Natal':
     return (2 * distancias[2] * valor_gasolina)/ consumo_gasolina
  elif cidade == 'Aracaju':
     return (2 * distancias[3] * valor_gasolina)/ consumo_gasolina
  else:
    print(f'Cidade indisponivel no plano de viajens.')
  

def gasto_passeio(cidade, dias):
   if cidade == 'Salvador':
    return passeio[0] * dias
   elif cidade == 'Fortaleza':
    return passeio[1] * dias
   elif cidade == 'Natal':
    return passeio[2] * dias
   elif cidade == 'Aracaju':
    return passeio[3] * dias
   else:
    print(f'Cidade indisponivel no plano de viajens.')

gasto = gasto_hotel(dias) + gasto_gasolina(cidade) + gasto_passeio(cidade,dias)

print(f"Com base nos gastos definidos, uma viagem de {dias} dias para {cidade} saindo de Recife custaria {gasto:.2f} reais")
  1. Você iniciou um estágio em uma empresa que trabalha com processamento de linguagem natural (NLP). Sua líder requisitou que você criasse um trecho de código que recebe uma frase digitada pela pessoa usuária e filtre apenas as palavras com tamanho maior ou igual a 5, exibindo-as em uma lista. Essa demanda é voltada para a análise do padrão de comportamento de pessoas na escrita de palavras acima dessa quantidade de caracteres.
    Dica: utilize as funções lambda e filter() para filtrar essas palavras. Lembrando que a função embutida filter() recebe uma função (no nosso exemplo uma função lambda) e filtra um iterável de acordo com a função. Para tratar a frase use replace() para trocar a ',' '.', '!' e '?' por espaço.
    Use a frase "Aprender Python aqui na Alura é muito bom" para testar o código.
frase = input('Informe uma frase: ')

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

palavra_5 = list(filter(lambda x: len(x) >= 5, frase))

print(palavra_5)

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas
solução!

Oi Valentina, tudo bem? 😊

Vejo que você está trabalhando em dois desafios bem interessantes! Vamos analisar cada um deles.

Para o primeiro desafio, sobre os gastos da viagem, seu código está bem estruturado com as funções separadas. Uma sugestão para tornar a função gasto_gasolina mais flexível seria usar um dicionário para mapear as cidades às suas distâncias, evitando os múltiplos if/elif.

Veja um exemplo de como você poderia refatorar essa parte:

distancias_dict = {
    'Salvador': 850,
    'Fortaleza': 800,
    'Natal': 300,
    'Aracaju': 550
}

def gasto_gasolina(cidade, distancias_mapa):
    if cidade in distancias_mapa:
        distancia = distancias_mapa[cidade]
        return (2 * distancia * valor_gasolina) / consumo_gasolina
    else:
        print(f'Cidade indisponível no plano de viagens.')
        return 0 # Retorna 0 caso a cidade não seja encontrada

# ... o restante do seu código ...

# Para chamar a função:
# gasto = gasto_hotel(dias) + gasto_gasolina(cidade, distancias_dict) + gasto_passeio(cidade, dias)

Essa abordagem com dicionário torna o código mais limpo e fácil de expandir se novas cidades forem adicionadas no futuro. 💪

Para o segundo desafio, sobre filtrar palavras com mais de 5 caracteres, você utilizou corretamente as funções lambda e filter(). A forma como você tratou a frase com replace() e split() também está perfeita para preparar os dados. 💬

O código que você apresentou para filtrar palavras é exatamente o que foi pedido e funciona muito bem!

🎓 Para saber mais:

Continue com o ótimo trabalho! 🤓

Woah! Gostei do uso do dicionário, ainda me sinto insegura com o uso de dicionários, mas gostei muito do seu código e explicação vou buscar me aventurar mais!