【问题标题】:Python Incorrect ValuesPython 不正确的值
【发布时间】:2018-09-28 20:55:37
【问题描述】:

我正在执行一项任务,该任务实现了 while 和 for 循环,以计算未来 5 年每年的学费,当时初始金额为 8000 并且每年增加 3%。

我的程序有效,但是当我实际计算预计的学费时,我得到了错误的值。

In
-------------------
tuition = 8000
increase = 0.03
tuition_total = 0

for year in range(0, 6):
    tuition += ((tuition * increase) * year)
    print(tuition, '\t', year)

Out
-------------------
    8000.00     0
    8240.00     1
    8734.40     2
    9520.49     3
    10662.95    4
    12262.39    5

根据我老师写的作业,这些值应该是这样的:

1年学费8240.00。

2年后学费为8487.20。

3年后,学费为8741.82。

4年后,学费为9004.07。

5年后,学费为9274.19。

我的操作停止了吗?对于我应该改变的任何建议,我将不胜感激。谢谢!

【问题讨论】:

  • 鉴于您得到了错误的值,我想说您的代码“有效”的前提是错误的。你不应该乘以year
  • ((tuition * increase) * year) 中删除year,你会得到正确的结果。
  • 是的,我的意思是我在运行程序时没有遇到任何错误。我从操作中删除了一年,现在我得到了正确的值。谢谢!
  • 这只是一个数学错误,在处理百分比增量时。以编程方式,这很好。

标签: python-3.x


【解决方案1】:

你很亲密。问问你自己,为什么你要把(tuition * increase) 逐年增加?

学费上涨的年份应该与上涨本身无关。因此,您的 for 循环应采用以下形式:

for year in range(0, 6):
    tuition += (tuition * increase)
    print(tuition, '\t', year)

这应该给你同样的答案,你的老师也提供了。

【讨论】:

  • 我听从了您的建议,程序运行良好,谢谢!
  • 您好,如果这是正确答案,请标记为正确答案(查看投票箭头下方)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2016-08-22
相关资源
最近更新 更多