因此,我想创建一个循环,该循环将在给定的时间内增加项目的成本,同时还记录实例的总成本。问题是,每当我执行程序时,输出似乎就会超过应有的值,并且如果将变量cost
的值更改为10,那么它的输出似乎会超出应有的数量。这是代码:
amount = 3
cost = 0
increase = 10
for i in range(amount):
cost += increase
increase += increase
total = cost
print(total)
当cost = 0
总计为70时,我认为应该为60,然后当cost = 10
总计为80时,我认为应该为90。
任何帮助将不胜感激-很抱歉提出这样一个愚蠢的问题。这可能是一个非常简单的修复程序。
答案 0 :(得分:5)
每次循环,您将increase
翻倍。我不确定您期望如何获得60和90的结果。我在循环的底部插入了一个简单的print
:
for i in range(amount):
cost += increase
increase += increase
print("TRACE", cost, increase)
输出:
TRACE 10 20
TRACE 30 40
TRACE 70 80
70
这是否可以解决您的问题?也许您需要将cost
增加为线性递增量:
for i in range(amount):
cost += increase
increase += 10
输出:
TRACE 10 20
TRACE 30 30
TRACE 60 40
60
答案 1 :(得分:3)
笔+纸有助于理解算法。紧要关头:编辑器中的注释将执行:
amount = 3
cost = 0
increase = 10
for i in range(amount) # 0 # 1 # 2 # rounds
cost += increase # 10 # 30 # 70 # cost after increase
increase += increase # 20 # 40 # 80 # increased doubles
# print(i, cost , increase) # or debugging via outputting
total = cost # senseless
print(total) # 70
您可能想调查Python debugging tips