Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alessandroaline

Erro ao alterar valor com percentual

Recommended Posts

Olá meus pares!

gostaria de uma ajudinha de voçês com um código.

Faça um programa que receba o valor de um carro e mostre uma tabela com os seguintes dados: preco final, quantidade de parcelas e valor da parcela. Considere o seguinte:

1.preco final para compra a vista tem um desconto de 20%

2.A quantidade de parcelas pode ser: 6,12,18,24,30,36,42,48,54 e 60

3 os percentuais de acrescimo seguem a seguir:

se parcela for 6 - acrescimo de 3 %

se parcela for 12 - acrescimo de 3 %

se parcela for 18- acrescimo de 3 %

se parcela for 24 - acrescimo de 3 %

se parcela for 30 - acrescimo de 3 %

se parcela for 36 - acrescimo de 3 %

se parcela for 42 - acrescimo de 3 %

se parcela for 48 - acrescimo de 3 %

se parcela for 54 - acrescimo de 3 %

se parcela for 60 - acrescimo de 3 %

fiz o seguinte, preciso que me ajudem a arrumar, pois não está dando certo.

 

preco_final = 0
acrescimo = 0
valor_parc = 0
preco_avista = 0
preco_bruto = 0

valor_car = float(input("digite o valor do carro: "))
opcao = str(input("1 - À vista / 2 - Parcelado: "))
preco_bruto = (valor_car * 0.20)
preco_avista = preco_bruto - 0.20

if opcao == "1":
  print("o valor do carro à vista será:", preco_avista)
elif opcao == "2":
  print("Opção escolhida foi parcelada.")
  qtde_parc = float(input("Escolha as parcelas: 6-12-18-24-30-36-42-48-54-60: "))
  if qtde_parc == 6:
    acrescimo = preco_bruto * 0.3
    preco_final = preco_final + acrescimo
    valor_parc = preco_final / 6
    print("O valor total será:",preco_final)
    print("A quantidade de parcelas será:",qtde_parc)
    print("O valor da parcela será:",valor_parc)
elif qtde_parc == 12:
  acrescimo = preco_bruto * 0.6
  preco_final = acrescimo
  valor_parc = preco_final / 12
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 18:
  acrescimo = preco_bruto * 0.9
  preco_final = acrescimo
  valor_parc = preco_final / 18
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 24:
  acrescimo = preco_bruto * 0.12
  preco_final = acrescimo
  valor_parc = preco_final / 24
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 30:
  acrescimo = preco_bruto * 0.15
  preco_final = acrescimo
  valor_parc = preco_final / 30
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 36:
  acrescimo = preco_bruto * 0.18
  preco_final = acrescimo
  valor_parc = preco_final / 36
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 42:
  acrescimo = preco_bruto * 0.21
  preco_final = acrescimo
  valor_parc = preco_final / 42
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 48:
  acrescimo = preco_bruto * 0.24
  preco_final = acrescimo
  valor_parc = preco_final / 48
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 54:
  acrescimo = preco_bruto * 0.27
  preco_final = acrescimo
  valor_parc = preco_final / 54
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)
elif qtde_parc == 60:
  acrescimo = preco_bruto * 0.30
  preco_final = acrescimo
  valor_parc = preco_final / 60
  print("O valor total será:", preco_final)
  print("A quantidade de parcelas será:", qtde_parc)
  print("O valor da parcela será:", valor_parc)		

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

acrescimo = preco_bruto * 0.3

você está calculando um acréscimo de 30%. O mesmo que é usado p/ 60 parcelas.

 

def menu_opcao_pagamento():
  print("*** Forma de pagamento ***")
  print("1. À vista")
  print("2. Parcelado")
  opcao = int(input(">"))
  return opcao


def menu_parcelamento():
  print("*** PARCELAMENTO ***")
  parcelas = int(input("Informe a quantidade de parcelas:"))
  return parcelas


def calculo_preco_final(valor_bruto, parcelas):
  novo_valor = None
  valor_parcelado = None
  
  if (parcelas == 1):
    novo_valor = valor_bruto * 0.80
    valor_parcelado = fm_novo_valor
  else:
    novo_valor = (valor_bruto + valor_bruto * (parcelas/200.0))
    valor_parcelado = novo_valor/parcelas
  
  print parcelas
  print("Valor bruto:{0:.2f}\n".format(valor_bruto))
  print("Quantidade de parcelas: {0}\n".format(parcelas))
  print("Novo valor: {0:.2f}\n".format(novo_valor))
  print("Valor parcelado:{0:.2f}".format(valor_parcelado))
  
PARCELAS = (6,12,18,24,30,36,42,48,54,60)
PGTO_VISTA = 1
PGTO_PARCELADO = 2

valor_carro = float(input("digite o valor do carro: "))
pagamento = menu_opcao_pagamento()
if (pagamento < PGTO_VISTA or pagamento > PGTO_PARCELADO):
  raise Exception("Forma de pagamento inválida.")
  
if (pagamento == PGTO_VISTA):
  calculo_preco_final(valor_bruto = valor_carro, parcelas = 1)
  
else:
  qtde_parcelas = menu_parcelamento()
  if (qtde_parcelas not in PARCELAS):
    raise Exception("Quantidade inválida de parcelas.")
    
  calculo_preco_final(valor_bruto = valor_carro, parcelas = qtde_parcelas)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas para brincar, e considerando que é um exercício acadêmico, onde a principio o que esta sendo testado é a logica e poder de abstração... De uma forma simples, e sem tratamento de erros, poderia ficar assim:
 

valor_do_carro = float(input("Digite o valor do carro: "))

parcelas = int(input("Escolha uma se seguintes parcelas: 6,12,18,24,30,36,42,48,54,60 ou Digite 0 (zero) para pagamento a vista: "))

if parcelas == 0:
	print("Valor total a vista com descoto: ", valor_do_carro - (valor_do_carro * 0.20))
else:
	valor_total = valor_do_carro + (valor_do_carro * 0.30)
	print("Valor total em :", parcelas, "parcelas: ", valor_total)
	print("valor de cada parcela: {0:.2f}" .format(valor_total / parcelas))

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@EdCesar O 0.30 está errado. O enunciado tem colado 3% p/ tudo, mas no código dele vê-se que o acréscimo corresponde a um valor que é igual à metade da quantidade de parcelas / 100.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, _Isis_ disse:

O 0.30 está errado. O enunciado tem colado 3% p/ tudo, mas no código dele vê-se que o acréscimo corresponde a um valor que é igual à metade da quantidade de parcelas / 100.


Verdade, e eu sabia disso. Acho que na hora acabei confundindo com a informação dos 30% que você mesma já tinha passado para ele :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Marcosvn
      Quero desenvolver um site semelhante a esse: https://www.catalogosofertas.com.br/ 
       
      No qual eles enviam diversas ofertas e encartes recentes de lojas em geral e supermercados. Eles possuem muito conteúdo que são atualizados frequentemente, no entanto, muitos dos supermercados, por exemplo, não possuem os folhetos de cada cidade em seus sites. De modo que pudesse criar um scraper pra ficar acompanhando as atualizações. 
       
      Ao mesmo tempo não imagino que eles tenha muitos funcionários fazendo isso, pois são muitas lojas e supermercados que o encarte vence em alguns dias. Oq me faz pensar que manualmente é inviável manter as atualizações.
       
      Queria saber de vocês, que tem experiência com a área ou mesmo que já tenham trabalhado em projetos semelhantes, como posso me organizar para fazer isso acontecer assim como no site de exemplo: https://www.catalogosofertas.com.br/ 
       
      Como posso fazer isso ? Realmente teria q ficar criando diversos scraper e códigos pra ficar acompanhando os encartes de cada loja e supermercado?
       
      Qual dica, sugestão , orientação poderá me ser muito útil, pois estou confuso sobre como fazer isso acontecer.
    • Por Bruno Soares Slva
      Boa tarde pessoal,
      Estou com problemas para criar um robô. O mesmo esta dando na linha em negrito. Segue abaixo o erro que está aparecendo. Alguma informação. Estou usando o VSCode versão: 1.73.0, Python versão 3.8.0, chromedriver versão 18 (antepenúltima). Segue código e erro abaixo:
       
      Erro mostrado: 
       
      Windows PowerShell
      Copyright (C) Microsoft Corporation. Todos os direitos reservados.        
      Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6   
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52080' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py'
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  c:; cd 'c:\Users\soare\Documents\Estudos\Python\projectCourse'; & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52168' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py' 
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
          code, fname = _get_code_from_file(run_name, path_name)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 294, in _get_code_from_file
          code = compile(f.read(), fname, 'exec')
        File "c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py", line 17
          driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
                                    ^
      SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse> 
       
       
      Obsrvação: 
      O erro está caindo nesta linha
      driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
       
       
       
      Codigo:
          from selenium import webdriver from selenium.webdriver.common.keys import Keys import time   options = webdriver.ChromeOptions() options.add_argument('--disable-logging') options.add_argument('--log-level=3')     driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options) driver.get("https://registro.br/")   pesquisa = driver.find_elements_by_id('is-avail-field') pesquisa.clear() pesquisa.send_keys('roboscompython.com.br') pesquisa.send_keys(Keys.RETURN)   time.sleep(8) driver.close()

         
       
       
       
       
       
       
       
       
       
    • Por Rafael Castelhano
      Boa tarde,
       
      Estou tentando criar uma imagem dinamicamente por javascript e carregá-la no input do formulário, apesar da imagem ser gerada corretamente, ao validar o formulário no python é retornado um erro alegando que o arquivo de imagem é inválido ou está corrompido.
       
      Segue gist com o código:
      https://gist.github.com/castelhano/bd72947e13421606453798bbf219cc74
    • Por frogzinkk
      rom itertools import count import time cores = {'verde': '\033[32m', 'amarelo': '\033[33m', 'vermelho': '\033[31m', 'azul': '\033[34m', 'limpar': '\033[m' } servicos = '0' while servicos != '4': print('{}━━━━━━◇◆◇━━━━━━'.format(cores['azul'])*2) print('Seja Bem Vindo ao FrogBank') print('━━━━━━◇◆◇━━━━━━'*2) servicos = str(input('{}{}\nEscolhas o Serviço Desejado!\n[1]Saldo\n[2]Emprestimo\n[3]Transferencia\n[4]Sair{}\n\n'.format( cores['limpar'], cores['amarelo'], cores['limpar']))) class operacoes: saldo_possui = 10 saldo_atual = 0 if servicos == '1': print('\n{}Saldo disponivel: {}\nAguarde o retorno automatico.{}'.format( cores['verde'], saldo_possui+saldo_atual, cores['limpar'])) time.sleep(5) elif servicos == '2': emprestimo = float( input('\nDigite o Valor do Emprestimo Desejado:')) salario = float(input('\nDigite o Valor do Seu Salario:')) anos = float( input('\nDigite Quantos Anos de Parcelamento Deseja?')) messes = anos * 12 valor_parcelas = emprestimo / messes valor_minimo_parcelas = salario * 30 / 100 if valor_parcelas <= valor_minimo_parcelas: saldo_atual = saldo_possui + emprestimo print('{}Emprestimo Aprovado! Seu saldo atual é: {}\n\n Aguarde o retorno automatico.{}'.format( cores['verde'], saldo_atual, cores['limpar'])) time.sleep(5) else: print('{}Emprestimo Recusado! Aguarde o retorno automatico.{}'.format( cores['vermelho'], cores['limpar'])) elif servicos == '3': saldo_possui = 10 input( '\nDigite o numero da conta na qual deseja realizar uma transferencia:\n') print('\n{}Processando...{}\n'.format( cores['verde'], cores['limpar'])) time.sleep(5) valor_transferencia = float( input('Digite o valor da transferencia\n')) print('\nProcessando...\n'.format(cores['verde'], cores['limpar'])) time.sleep(5) if valor_transferencia > saldo_possui: print('{}Voce nao possui saldo para esta ação.{}'.format( cores['vermelho'], cores['limpar'])) input('Digite o valor da transferencia\n') else: valor_transferencia == saldo_possui print( '\n{}Transferencia Realizada com sucesso! Aguarde o retorno automatico.{}\n'.format(cores['verde'], cores['limpar'])) time.sleep(5)
    • Por TheLord23
      ESTOU COMEÇANDO AGORA NA PROGRAMAÇÃO COM VISUALG E TERIA QUE COLOCAR ESTE CODIGO EM UM LAÇO DE REPETIÇÃO.
      POREM NÃO ESTOU CONSEGUINDO PODERIAM ME AJUDAR ?
       
      SÓ PENSANDO QUE O USUÁRIO IRA DIGITAR O TAMANHO DO VETOR, APOS ISSO CADA OPÇÃO QUE ELE ESCOLHER E ELA SER EXECUTADA DE FORMA CORRETA ELE VOLTARA PARA O MEUNU PRINCIPAL DAS OPÇÕES ATE QUE ELE SELECIONE A OPÇÃO "F"
       
      POREM TENTEI ESCREVELO USANDO ENQUANTO MAS ACABOU QUE EU NÃO CONSIGO PREVINIR OS ERROS DO USUÁRIO QUANDO ELE COLOCA AS INFORMAÇÕES
       
      TIPO:
      -ARMAZENAR UM NÚMERO NO VETOR E ESSE NÚMERO NÃO SER SOBRESCREVIDO ATE QUE O PROGRAMA SEJA ENCERRADO
      -SE ELE DIGITAR PRA BUSCAR OU INSERIR O NÚMERO ZERO O PROGRAMA INFORMAR QUE O VALOR É INVÁLIDO
       
      TENTEI USAR PROCEDIMENTOS E FUNÇÕES MAS OS ERROS CONTINUARAM.
       
       
       
      Algoritmo "DESAFIO"
      Var
         AUX,CONTADOR,BUSCAR:INTEIRO
         POSICAO,AUX_TEMP:INTEIRO
         OPCAO:CARACTERE
         RESULT_BUSCA: LOGICO
         SOMA_VET:REAL
         NUMERO:VETOR[1..500]DE INTEIRO
      Inicio
         ESCREVAL("*********************************")
         ESCREVAL("* CADASTRO DE VETORES - DESAFIO *")
         ESCREVAL("*********************************")
         ESCREVA("DIGITE O TAMANHO DO VETOR A SER CADASTRADO: ")
         LEIA(AUX)
         NUMERO[AUX] <- AUX
         ESCREVAL("A - Cadastrar um novo número;")
         ESCREVAL("B - Buscar um número")
         ESCREVAL("C - Excluir um número;")
         ESCREVAL("D - Listar os números cadastrados;")
         ESCREVAL("E - Exibir a soma dos números do vetor;")
         ESCREVAL("F - Sair do sistema.")
         LEIA(OPCAO)
         OPCAO <- MAIUSC(OPCAO)
         ESCOLHA OPCAO
         CASO "A"
            PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
               ESCREVA("DIGITE O VALOR QUE SERÁ ARMAZENADO NA",CONTADOR,"ª POSIÇÃO DO VETOR: ")
               LEIA(NUMERO[CONTADOR])
            FIMPARA
         CASO "B"
            ESCREVA("QUAL NÚMERO DESEJA ENCONTRAR: ")
            LEIA(BUSCAR)
            PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
               SE NUMERO[CONTADOR] = BUSCAR ENTAO
                  RESULT_BUSCA <- VERDADEIRO
                  POSICAO <- CONTADOR
               FIMSE
            FIMPARA
            PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
               ESCREVAL(NUMERO[CONTADOR])
            FIMPARA
            ESCREVAL("")
            ESCREVAL("---------")
            SE RESULT_BUSCA = VERDADEIRO ENTAO
               ESCREVAL("O NÚMERO",BUSCAR,"FOI ENCONTRADO E ESTA NA POSIÇÃO",POSICAO)
            SENAO
               ESCREVAL("O NÚMERO NÃO FOI ENCONTRADO !")
            FIMSE
         CASO "C"
            escreval("QUAL NÚMERO DESEJA EXCLUIR DO VETOR: ")
            leia(BUSCAR)
            SE NUMERO[CONTADOR] = BUSCAR ENTAO
               NUMERO[CONTADOR] <- 0
               ESCREVAL("O NÚMERO",BUSCAR,"NA POSIÇÃO",POSICAO,"DO VETOR FOI EXCLUIDO !")
            FIMSE
            PARA CONTADOR DE 1 ATE NUMERO[AUX]
               PARA AUX DE CONTADOR + 1 ATE AUX FACA
                  SE NUMERO[AUX] > NUMERO[CONTADOR]
                     AUX_TEMP <- NUMERO[AUX]
                     NUMERO[AUX] <- NUMERO[CONTADOR]
                     NUMERO[CONTADOR] <- AUX_TEMP
                  FIMPARA
               FIMPARA
               ESCREVA("VALROES DO VETOR: ")
               PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
                  ESCREVAL(NUMERO[CONTADOR])
               FIMPARA
            CASO "D"
               ESCREVA("VALORES DO VETOR: ")
               PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
                  ESCREVAL(NUMERO[CONTADOR])
               FIMPARA
            CASO "E"
               PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
                  SOMA_VET <- SOMA_VET + NUMERO[CONTADOR]]
               FIMPARA
               ESCREVAL("")
               ESCREVA("A SOMA DO VETOR É:",SOMA_VET)
               
            CASO "F"
               ESCREVAL("ENCERRANDO SISTEMA...")
            OUTROCASO
               ESCREVAL("OPÇÃO INVÁLIDA !")
            FIMESCOLHA
      Fimalgoritmo
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.