我是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)
但是,运行此命令时没有输出。我想念什么? 我想要的输出是
到2025年,印度的人口将超过中国的人口。
答案 0 :(得分:0)
在您的情况下,种群人口永远不会磨碎,然后种群人口会因此而不再打印
如果您想解决问题,可以尝试:
population_a = 1.37
population_b = 1.26
growing_rate_a = 0.0051
growing_rate_b = 0.0135
year = 2014
while population_a > population_b:
year += 1
population_b += population_b * growing_rate_b
population_a += population_a * growing_rate_a
print(year)
答案 1 :(得分:0)
while循环之前不需要if语句。您可以将所有这些逻辑放入while循环内,并更新每年的总体参数,如下所示:
Indian population will exceed china population in 2025
使用Chn人口的1.37和ind人口的1.24的输出:
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语句从不执行的原因是,while语句仅在填充等于初始输入时才执行。看这些行:
{{1}}
它们只会更新一次,因为经过1次迭代后,您的if语句不再成立,并且填充永远不会更新。因此,印度人口总是少于中国人口,因此该声明从未执行。
答案 2 :(得分:0)
在while循环中,您正在检查是否与Population_chn的1.37相等,这对于第一种情况可能是有效的,因为population_chn += 0.0051*population_chn
会更改其值,因此不适用于while循环的任何后续迭代。人口_情况也是如此。
相反,您应该在while循环中比较种群_chn和种群_ind的值,并且仅使用一个循环
while (population_chn>=population_ind):
population_chn += 0.0051*population_chn
population_ind += 0.0135*population_ind
year +=1