Condition error of Pycharm

Asked

Viewed 164 times

-2

I am having condition error in Pycharm. It was working normally minutes ago. I already closed the program, but it did not solve.

valorProduto = float(input('Qual é o valor do produto de compra? R$ '))
modoPagamento = input('Deseja parcelar ou pagar à vista? ')

if modoPagamento == 'à vista' or 'À vista':
    desconto = valorProduto - (valorProduto * 20 / 100)
    print('Certo! Nesse caso, você recebe-rá 20% de desconto.')
    print('O novo preço do produto é R${:.2f}'.format(desconto))

elif modoPagamento == 'parcelar' or 'parcela':
    print('Certo! Pagamento parcelado. Segue abaixo tabela de parcelamentos:')
    print('=' * 10, 'Tabela', '=' * 10, '\n2 à 3 parcelas, acréscimo de 5%.\n4 à 6 parcelas, acréscimo de 10%.'
                                      '\n7 à 10 parcelas, acréscimo de 15%.\n11 parcelas ou mais, acréscimo de 25%.')
    parcela = int(input('Deseja fazer em quantas parcelas? '))

    if parcela <= 3:
        valorParcela = ((valorProduto / parcela) + ((valorProduto * 5) / 100))
        preçoFinal = valorParcela + valorParcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 5% sobre o valor do produto.\nTotalizando'
              ' {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela,
                                                                                         preçoFinal))

    elif parcela <= 6:
        valorParcela = (valorProduto / parcela) + ((valorProduto * 10) / 100)
        preçoFinal = valorParcela + valorParcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 10% sobre o valor do produto.\nTotalizando'
              ' {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela,
                                                                                         preçoFinal))

else:
    print('Modo de pagamento inválido!')
  • Your problem seems to be the same as the one: https://answall.com/q/353470/112052

  • I followed the tips of Anderson Carlos Woss, but I could not solve the problem yet. It’s as I commented. Time ago was working normally if and Elif with another program. now stopped working in any program in which create. in any newfile.

  • @Jones If your problem has been solved, be sure to mark the answer as accepted.

1 answer

0


Days ago I had similar doubt and Anderson Woss answered me brilliantly in this post here: Difficulties with using IF.

His problem is basically the same as mine. I copied his code, pasted here and put to run, at first he always entered the if view, even if I chose the option of installment, as shown below:

inserir a descrição da imagem aqui

So I made changes to the following line of code:

if modoPagamento == 'à vista' or 'À vista':

I switched to:

if modoPagamento in {'à vista','À vista'}:

And I have therefore also changed this line:

elif modoPagamento == 'parcelar' or 'parcela':

I switched to:

elif modoPagamento in {'parcelar','parcela'}:

Now the program already shows me the options of installments if I choose the option to pay installments, as shown in the image below:

inserir a descrição da imagem aqui

I also noticed that your program has an error when the user chooses the option to pay installments. Note the following image:

inserir a descrição da imagem aqui

Note that I chose to pay 3 times a product that costs 1000 real and even with the increase of 5% due to installments the price of the final product was 766,67. This occurred due to an error in the mathematical construction of the solution and not exactly due to an error in the program, so I will not bother to correct, but notice that it could be done in a more succinct way, as shown below:

if parcela <= 3:
    valorProduto = valorProduto * 1.05 #Multiplicando por 1,05 você já aumenta o preço final do produto em 5%
    valorParcela = (valorProduto / parcela)
    print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 5% sobre o valor do produto.\nTotalizando {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela, valorProduto))

Your final code went like this:

valorProduto = float(input('Qual é o valor do produto de compra? R$ '))
modoPagamento = input('Deseja parcelar ou pagar à vista? ')

if modoPagamento in {'à vista','À vista'}:
    desconto = valorProduto - (valorProduto * 20 / 100)
    print('Certo! Nesse caso, você receberá 20% de desconto.')
    print('O novo preço do produto é R${:.2f}'.format(desconto))

elif modoPagamento in {'parcelar','parcela'}:
    print('Certo! Pagamento parcelado. Segue abaixo tabela de parcelamentos:')
    print('=' * 10, 'Tabela', '=' * 10, '\n2 à 3 parcelas, acréscimo de 5%.\n4 à 6 parcelas, acréscimo de 10%.'
                                  '\n7 à 10 parcelas, acréscimo de 15%.\n11 parcelas ou mais, acréscimo de 25%.')
    parcela = int(input('Deseja fazer em quantas parcelas? '))

    if parcela <= 3:
        valorProduto = valorProduto * 1.05
        valorParcela = valorProduto / parcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 5% sobre o valor do produto.\nTotalizando {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela, valorProduto))

    elif parcela <= 6:
        valorProduto = valorProduto * 1.10
        valorParcela = valorProduto / parcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 10% sobre o valor do produto.\nTotalizando {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela, valorProduto))

    elif parcela <= 10:
        valorProduto = valorProduto * 1.15
        valorParcela = valorProduto / parcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 15% sobre o valor do produto.\nTotalizando {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela, valorProduto))

    elif parcela > 10:
        valorProduto = valorProduto * 1.25
        valorParcela = valorProduto / parcela
        print('Certo! {} vezes. Nesse caso, você receberá um acréscimo de 25% sobre o valor do produto.\nTotalizando {} parcelas de R${:.2f} com o preço final do produto de R${:.2f}'.format(parcela, parcela, valorParcela, valorProduto))

I hope I could help you.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.