如何修复仅运行一次的while循环?

时间:2019-04-09 22:47:46

标签: python

我正在尝试计算印度人口超过中国的时间。我的while循环只执行第一次迭代。

我尝试将while循环设置为在循环本身内执行,相反,它变成了无限循环。我也尝试在循环内外缩进print语句。

China=1.415
Cgrowth=.39
India=1.354
Igrowth=1.11
count=0
while India<China :
     China += Cgrowth*China
     India += Igrowth*India
     count += 1

print(count)

我的输出始终以1结尾。 我进行了数学运算,即使在一个循环之后该语句仍然是正确的,那么为什么在循环条件为假的情况下print(count)被删除?我也尝试过India*=Igrowth,但是所有循环仍然只在第一次运行。

3 个答案:

答案 0 :(得分:1)

在第一个循环中,中国= 1.415,印度= 1.354,因此条件将验证为True并运行循环。这将启动以下对印度和中国变量的重新计算。

China = 1.415 + .39*1.415
China = 1.415 + .55185
China = 1.96685

India = 1.354 + 1.11*1.354
India = 1.354 + 1.50294
India = 2.85694

因此,在第二个循环中,China = 1.96685&India = 2.85694,因此该条件将不会验证为True,并且将在第一个循环(即1)之后返回计数。

答案 1 :(得分:0)

GIGO。

垃圾进入。垃圾了。

China=1.415
Cgrowth=.39
India=1.354
Igrowth=1.11

China += Cgrowth*China # = 1.966
India += Igrowth*India # = 2.85

因此,经过一次迭代,印度不少于中国。

一些基本的调试-像在循环末尾打印所有值一样,将比在此处发布快很多。

我的猜测是增长值应该是百分比,而人口值应该是十亿?您似乎没有考虑任何单位等。

答案 2 :(得分:-1)

India = 8
China = 15

Igrowth = 0.1
Cgrowth= 0.05
count = 0
while India<China :
     China += Cgrowth*China
     India += Igrowth*India
     count += 1

print(India, China, count)

此代码打印30.379986686659283 29.698973991590965 14

在您的代码中

China=1.415
Cgrowth=.39
India=1.354
Igrowth=1.11

第一次循环后 中国将为1.96685(1.415 + 1.415 * 0.39) 印度将是2.85694(1.354 + 1.354 * 1.11)