我之前发过一篇关于此事的帖子,但我觉得我措辞/解释错了。我将向您展示代码然后我将举例说明我正在尝试做什么。
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
语句,但它给你一个想法。
很明显我对编程很陌生,所以你也可以赞赏任何初学者提示。
我要做的是计算费用等于精确总数,如下:
我尽可能彻底地解释这一点,但是如果你有任何问题请问,这让我感到烦恼,我无法弄清楚哈哈。
答案 0 :(得分:0)
一个简单的观点是,你的while循环取决于两个变量:amountPaid
和total
。这意味着如果这两个没有改变,while循环将永远循环,所以你必须确保它们在循环中被修改。
您还可以快速看到循环本身不会修改这两者中的任何一个,它只会修改newAmount
。这意味着循环将永远运行,或者根本不运行,因此在这种情况下它是无用的。
因此您需要更改变量的修改位置。请注意,当你写:
total = secondFee + newAmount
不是定义始终保持真实,而是分配。这意味着修改secondFee
和newAmount
不会直接修改total
,除非您重写相同的行。 (注意,这就是一个循环,它“重写行”!)
回到你的代码:目前,只有这两个选项是可能的。快速查看代码,看起来你打算将这两行放在while循环中:
while total < amountPaid:
newAmount = newAmount + .01
secondFee = (newAmount * taxPercentage) + .30
total = secondFee + newAmount
我希望你能理解为什么,并祝你未来的所有编程工作都好运:)