Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Projeto 12

Boa tarde, estás bem? Desenvolvi um código com o fim de calcular a quantidade de litros de dois tipos de combustíveis fornecidos ao motorista, os descontos que são aplicados e os valores a serem pagos em cada caso. Entretanto, após a execução do programa, não foram solicitados os dados à pessoa usuária. Como posso resolver esse problema? Disponibilizo o código digitado abaixo e também o link para consulta se for necessário. Desde já obrigado pela atenção.

#Projeto 12 
#Etanol até 15 litros, 2% por litro comprado dele.
#Etanol < 15 litros ou > 15 litros, 4% por litro comprado dele.

'Diesel até 15 litros , 3% por litro comprado dele.'
'Diesel < 15 litros ou > 15 litros, 5% por litro comprado dele.'

#Litro de diesel R$ 2,00
#Litro de Etanol R$ 1,70

def escolha_combustivel():
  #Definir a escolha do combustível.
  escolha = str(input("Defina qual combustível deseja colocar no tanque: "))
  return escolha

def combustivel(escolha):
  #Definir o volume em litros de combustíveis
  combustivel = float(input("Digite o volume de combustível colocado no tanque: "))
  return combustivel

def desconto_pagamento(escolha, combustivel):
  #Definir os descontos e o preço de pagamento
  if escolha  == 'Etanol' and combustivel == 15:
    desconto  = 0.02 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Etanol' and combustivel < 15:
    desconto  = 0.04 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Etanol' and combustivel > 15:
    desconto = 0.04 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Diesel' and combustivel == 15:
    desconto = 0.03 * combustivel * 2.00
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Diesel' and combustivel < 15:
    desconto = 0.05 * combustivel * 2
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Diesel' and combustivel > 15:
    desconto = 0.05 * combustivel * 2
    pagamento = combustivel * 1.70 - desconto

  return desconto, pagamento
  
  #Obter a escolha do combustível
  escolha = escolha_combustivel()

  #Obter o volume em litros de combustíveis
  combustivel = combustivel(escolha)

  #Calcular o desconto e o pagamento
  desconto, pagamento = desconto_pagamento(escolha, combustivel)

  #Imprimir o desconto e o pagamento.
  print('O desconto é de R$ {:.2f}.'. format(desconto))
  print('O pagamento é de R$ {:.2f}.'.format(pagamento))

https://colab.research.google.com/drive/1T3FqyJZJGjx2VHhNsQB27BTBdSSo5q8L#scrollTo=k5Usvvn9WOy_

1 resposta
solução!

Oi, André! Está tudo certo por aqui, e aí?

Para que os inputs sejam executados, e consequentemente os dados sejam solicitados aos usuários, precisamos remover a indentação dos trechos finais do seu programa. A sua função desconto_pagamento() é finalizada após o return, contudo, os códigos posteriores estão alinhados de modo que ainda façam parte desta função, impedindo que sejam "rodados" automaticamente!

Além disso, existe um detalhe que podemos melhorar em seu projeto, veja: ao pensar no desconto de 2% para o Etanol, devemos considerar que a quantidade de litros comprada vai até o número 15. A representação desse cenário, na programação, pode ser expressa no sinal de menor ou igual (<=). Implementando essa lógica em seu programa, ficaremos com uma estrutura parecida com esta:

if escolha  == 'Etanol' and combustivel <= 15:
    desconto  = 0.02 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Etanol' and combustivel > 15:
    desconto = 0.04 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

Dessa forma, entregaremos valores corretos de desconto e pagamento!

Após modificar o seu código por completo, levando em conta a mudança na indentação e nas condicionais, chegaremos neste resultado:

def escolha_combustivel():
  #Definir a escolha do combustível.
  escolha = str(input("Defina qual combustível deseja colocar no tanque: "))
  return escolha

def combustivel(escolha):
  #Definir o volume em litros de combustíveis
  combustivel = float(input("Digite o volume de combustível colocado no tanque: "))
  return combustivel

def desconto_pagamento(escolha, combustivel):
  #Definir os descontos e o preço de pagamento

  if escolha  == 'Etanol' and combustivel <= 15:
    desconto  = 0.02 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Etanol' and combustivel > 15:
    desconto = 0.04 * combustivel * 1.70
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Diesel' and combustivel <= 15:
    desconto = 0.03 * combustivel * 2.00
    pagamento = combustivel * 1.70 - desconto

  elif escolha == 'Diesel' and combustivel > 15:
    desconto = 0.05 * combustivel * 2
    pagamento = combustivel * 1.70 - desconto

  return desconto, pagamento

#Obter a escolha do combustível
escolha = escolha_combustivel()

#Obter o volume em litros de combustíveis
combustivel = combustivel(escolha)

#Calcular o desconto e o pagamento
desconto, pagamento = desconto_pagamento(escolha, combustivel)

#Imprimir o desconto e o pagamento.
print('O desconto é de R$ {:.2f}.'. format(desconto))
print('O pagamento é de R$ {:.2f}.'.format(pagamento))
print('A quantidade de litros vendidos é {:.2f}'.format(combustivel))

Espero ter ajudado, André! Se surgirem novas dúvidas, fico à disposição para ajudá-lo.

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!