对于循环似乎要添加更多的变量

时间:2019-01-08 17:23:43

标签: python python-3.x

因此,我想创建一个循环,该循环将在给定的时间内增加项目的成本,同时还记录实例的总成本。问题是,每当我执行程序时,输出似乎就会超过应有的值,并且如果将变量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。

任何帮助将不胜感激-很抱歉提出这样一个愚蠢的问题。这可能是一个非常简单的修复程序。

2 个答案:

答案 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