如何计算具体的价格费?

时间:2017-07-21 02:00:43

标签: python paypal

我之前发过一篇关于此事的帖子,但我觉得我措辞/解释错了。我将向您展示代码然后我将举例说明我正在尝试做什么。

amountPaid = float(input("Enter the amount you're paying:\n"))
taxPercentage = float(input("Enter the tax percentage:\n"))

taxPercentage = taxPercentage / 100
firstFee = (amountPaid * taxPercentage) + .30
newAmount = amountPaid - firstFee
secondFee = (newAmount * taxPercentage) + .30
total = secondFee + newAmount
print("{:.2f}".format(total))
while total < amountPaid:
  newAmount = newAmount + .01
print("The amount you should be paying is ${:.2f}".format(total))
print("The fee with that total would be ${:.2f}".format(secondFee))

(注)上面的代码实际上目前不起作用,我相信它是while语句,但它给你一个想法。

很明显我对编程很陌生,所以你也可以赞赏任何初学者提示。

我要做的是计算费用等于精确总数,如下:

  • 假设我支付1.00美元。使用上述等式支付的费用将等于1.33美元。
  • 因此,如果您从我们开始的最初的1.00美元中减去0.33美元的费用,我们将获得0.67美元
  • 但是,0.67美元的费用是0.32美元,这是0.99美元,不一定是1.00美元

我尽可能彻底地解释这一点,但是如果你有任何问题请问,这让我感到烦恼,我无法弄清楚哈哈。

1 个答案:

答案 0 :(得分:0)

一个简单的观点是,你的while循环取决于两个变量:amountPaidtotal。这意味着如果这两个没有改变,while循环将永远循环,所以你必须确保它们在循环中被修改

您还可以快速看到循环本身不会修改这两者中的任何一个,它只会修改newAmount。这意味着循环将永远运行,或者根本不运行,因此在这种情况下它是无用的。

因此您需要更改变量的修改位置。请注意,当你写:

total = secondFee + newAmount

不是定义始终保持真实,而是分配。这意味着修改secondFeenewAmount不会直接修改total,除非您重写相同的行。 (注意,这就是一个循环,它“重写行”!)

回到你的代码:目前,只有这两个选项是可能的。快速查看代码,看起来你打算将这两行放在while循环中:

while total < amountPaid:
    newAmount = newAmount + .01
    secondFee = (newAmount * taxPercentage) + .30
    total = secondFee + newAmount

我希望你能理解为什么,并祝你未来的所有编程工作都好运:)