Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
4
respostas

[Projeto] Desafio: Calculando valor da entrega

Início
-------- // Entrega Delivery
-------- Inserir a distância (km) do destino final
-------- Está chovendo? (V ou F)
-------- // Valor da entrega
-------- Se distância < 5 km: R$ 5.00
-------- Se distância > 5 km e distância < 10 km: R$ 8.00
-------- Se distância > 10 km: R$ 10.00
-------- Se chuva for V: + R$ 2.00
-------- Exibir valor total de entrega
Fim

4 respostas
solução!

Olá, Evandro. Como vai?

Você organizou bem a regra da entrega, separando a entrada da distância, a verificação de chuva e os valores conforme cada faixa de quilometragem. Um ponto interessante é cuidar dos limites entre as condições, para que uma distância como 5 km ou 10 km também entre em alguma regra. Uma dica interessante para o futuro é usar if, else if e else deixando as faixas bem definidas:

distancia = 7
chuva = "V"

if distancia <= 5:
    valorEntrega = 5
elif distancia <= 10:
    valorEntrega = 8
else:
    valorEntrega = 10

if chuva == "V":
    valorEntrega = valorEntrega + 2

print("Valor total da entrega: R$", valorEntrega)

Esse exemplo define o valor da entrega conforme a distância e soma 2 reais quando estiver chovendo. Pensando nessa lógica, como você adaptaria o algoritmo para cobrar um valor extra quando a entrega fosse feita à noite?

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

Essa atividade é difícil para eu compreender. Eu estou quebrando a cabeça. Então é necessário que vocês respondam à mim com uma linguagem simples.


Sobre o código:

distancia = 7
chuva = "V"

if distancia <= 5:
valorEntrega = 5
elif distancia <= 10:
valorEntrega = 8
else:
valorEntrega = 10

if chuva == "V":
valorEntrega = valorEntrega + 2

print("Valor total da entrega: R$", valorEntrega)


Por que um número aleatório foi atribuído como valor à variável distância? Esse valor é a quilometragem determinado pelo pedido do cliente?

E sobre else if: O <10 não compreende um número menor ou igual que 5, pois, conforme a lógica, os número entre 1 a 5 no comparativo <10 são tipo "riscados" pela negação do <5?

Se eu não me engano, sobre a linha valorEntrega = valorEntrega + 2, pode parecer contrário à primeira vista, mas tecnicamente não é, por conta da ausência da literalidade (uso das aspas). Praticamente (e paradoxalmente), utilizamos a própria váriavel "dentro de si" para somar com a taxa da chuva, e gerar um valor à variável, que até então não existia antes dessa linha, certo?

Eu acredito que também é possível escrever a última linha (caixa de texto/aviso/print) do seguinte modo:

print("Valor total da entrega: R$ ", valorEntrega,",00")

Quero escrever o número correto que corresponde ao real, no caso, se eu não me engano, o 9, por conta do valorEntrega = valorEntrega + 2.

Então, eu segui esse raciocínio:
Após a variável valorEntrega, digitei a vírgula para separar a variável de uma nova caixa de texto: digitei uma aspa para abrir a caixa de texto para digitar a vírgular e dois 00 e fecho a caixa de texto com aspa (sem abrir espaço para juntar o valor da variável valorEntrega, ou seja 9 junto de ",00")

Olá Jackson, bom dia, tudo bem?

Vamos por partes:

  1. A distância seria indicado a partir do momento que o cliente informar sua localização, assim saberemos o valor da distância.

  2. Sobre o "if distancia <= 5: / elif distancia <= 10:", neste caso a primeira condição (if) está avaliando a distância até 5km. Se o cliente informa que está a 6km, por exemplo, essa primeira condição passa a ser False, pois ela avalia se a distância é menor ou igual a 5km. Assim, a distância de 6km cai para a segunda condição (elif), pois ela é maior que 5km e menor que 10km.

  3. Sobre "valorEntrega = valorEntrega + 2": Sim, seu pensamento está correto. Usamos a variável para indicar que queremos soma-las a ela mesmo um valor. (Como se fosse um contador).

  4. Em Python, quando queremos imprimir um valor monetário 'completo', fazemos assim:
    print(f'Valor total da entrega: R$ {valorEntrega:.2f}.')
    Acrescentamos essa informação na f-string, dentro das {}, '.2f', assim ele imprime o valor com duas casas decimais.
    Em outras linguagens, eu não saberei te informar porque não sei.

Acredito que respondi tudo. Espero ter lhe ajudado!