如何在python中的for循环中进行数学运算?

2024-09-26 17:55:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的当前代码,它只添加我的“z”和一次

increase_rate = int(input("Enter the Percent Daily Increase Rate"))
for i in range(10, 21):
    x = increase_rate/100
    c = 1.5
    y = c * x 
    z = c + y
    print("On Feb", i, z, "million were vaccinated")

结果(输入40)

On Feb 10 2.1 million were vaccinated
On Feb 11 2.1 million were vaccinated
On Feb 12 2.1 million were vaccinated
On Feb 13 2.1 million were vaccinated
On Feb 14 2.1 million were vaccinated
On Feb 15 2.1 million were vaccinated
On Feb 16 2.1 million were vaccinated
On Feb 17 2.1 million were vaccinated
On Feb 18 2.1 million were vaccinated
On Feb 19 2.1 million were vaccinated
On Feb 20 2.1 million were vaccinated

所需结果:

On Feb 10 1.5 million were vaccinated
On Feb 11 2.1 million were vaccinated
On Feb 12 2.94 million were vaccinated
On Feb 13 4.116 million were vaccinated
On Feb 14 5.7624 million were vaccinated
On Feb 15 8.067359999999999 million were vaccinated
On Feb 16 11.294304 million were vaccinated
On Feb 17 15.8120256 million were vaccinated
On Feb 18 22.13683584 million were vaccinated
On Feb 19 30.991570176 million were vaccinated
On Feb 20 43.38819824639999 million were vaccinated

我如何让我的代码在210万美元之后继续运行,同时仍能正常运行


Tags: the代码inputrateonfebintdaily
2条回答

以下是代码中的更改,删除了一些额外的变量,因为这些变量不是必需的:

increase_rate = int(input("Enter the Percent Daily Increase Rate"))
c = 1.5
for i in range(10, 21):
    print("On Feb", i, c, "million were vaccinated")
    c = c + c*increase_rate/100

输出:

Enter the Percent Daily Increase Rate40
On Feb 10 1.5 million were vaccinated
On Feb 11 2.1 million were vaccinated
On Feb 12 2.94 million were vaccinated
On Feb 13 4.116 million were vaccinated
On Feb 14 5.7623999999999995 million were vaccinated
On Feb 15 8.067359999999999 million were vaccinated
On Feb 16 11.294303999999999 million were vaccinated
On Feb 17 15.812025599999998 million were vaccinated
On Feb 18 22.136835839999996 million were vaccinated
On Feb 19 30.991570175999996 million were vaccinated
On Feb 20 43.388198246399995 million were vaccinated

您在代码中看到的行为的原因是cx,并且最终y(事实上c*x)在每个循环中保持不变,从而为z(事实上z=c+y)提供相同的值。您应该在每个循环中更新z,以获得正确的值

您需要在循环外初始化z,因为您将再次使用该值

increase_rate = int(input("Enter the Percent Daily Increase Rate"))
x = increase_rate/100
z = 1.5
for i in range(10, 21):
  print("On Feb", i, z, "million were vaccinated")
  z = z + z*x

输出(输入40):

On Feb 10 1.5 million were vaccinated
On Feb 11 2.1 million were vaccinated
On Feb 12 2.9400000000000004 million were vaccinated
On Feb 13 4.1160000000000005 million were vaccinated
On Feb 14 5.762400000000001 million were vaccinated
On Feb 15 8.067360000000003 million were vaccinated
On Feb 16 11.294304000000004 million were vaccinated
On Feb 17 15.812025600000005 million were vaccinated
On Feb 18 22.136835840000007 million were vaccinated
On Feb 19 30.99157017600001 million were vaccinated
On Feb 20 43.388198246400016 million were vaccinated

相关问题 更多 >

    热门问题