我是python和stackoverflow的新手。我试着通过做一些小项目来学习
项目涉及人口:2014年中国人口约13.7亿,以每年0.51%的速度增长。2014年,印度人口约为12.6亿,并以每年1.35%的速度增长。确定印度人口何时超过中国人口。假设2014年的增长率将继续
我使用的代码是:
year = 2014
population_chn = eval(input("Enter the initial China population:")) #1.37
population_ind = eval(input("Enter the initial Indian population:")) #1.26
while population_chn == 1.37:
population_chn += 0.0051*population_chn
year +=1
while population_ind == 1.26:
population_ind += 0.0135*population_ind
year +=1
if population_ind>population_chn:
print("Indian population will exceed china population in",year)
但是,运行此命令时没有输出。我错过了什么? 我想要的结果是
India's population will exceed China's population in the year 2025.
在while循环中,您检查的是population chn是否等于1.37,这可能对第一种情况有效,但对于while循环的任何后续迭代都不起作用,因为
population_chn += 0.0051*population_chn
更改了它的值。人口工业也是如此。 相反,您应该在while循环中比较population\u chn和population\u ind的值,并且只使用一个循环在while循环之前不需要if语句。您可以将所有这些逻辑放入while循环中,并按如下方式更新每年的总体参数:
Chn人口为1.37,ind人口为1.24:
if语句从不执行的原因是while语句只在填充等于初始输入时执行。看看这些线条:
它们只会更新一次,因为在1次迭代之后,if语句不再是真的,并且填充在之后再也不会更新。因此,印度人口总是少于中国人口,所以这句话永远不会被执行。你知道吗
在你的情况下,人口指数永远不会比人口指数更高,这就是为什么你不会打印一些东西
如果您想解决问题,可以尝试:
相关问题 更多 >
编程相关推荐