Python中的动物种群

时间:2019-02-28 21:48:38

标签: python

def main():
 wolf = int(input("Enter wolf population (initial): "))
 rabbit = int(input("Enter rabbit population (initial): "))
 grass = float(input("Enter total grass area, initially fertile (in sq yards): "))
 wolf_growth = float(input("Enter wolf growth rate (in percentage): "))
 rabbit_growth = float(input("Enter rabbit annual growth rate (in percentage): "))
 area_growth = float(input("Enter grass area annual growth rate (in percentage): "))

 for year in range(0,21):
     wolf = wolf * (1 + wolf_growth / 100)

     print()
     print("Year  Wolf Population  Rabbit Population Available Grass Area")
     print("%-2d%6d%19d%22.2f" %(year, wolf, rabbit,grass))

main()

这是我的代码,并且有效。但是我需要帮助来弄清楚如何根据其他计算正确完成编码。 “狼的人口每年以特定的增长率增长 用户输入。除此之外,每5年狼的数量减少到以前的一半 年人口由于广泛的流行病。考虑到最初的狼数量, 计算每年的狼数量(提示:使用模运算符进行计算 疾病扩散时期的人口)。每年,狼的数量需要更新 根据其增长率如下。此外,除第一年(即仅在6,11,16年)外,每5年一次,狼种群 必须是前一年狼族人口的一半”

我尝试对此部分使用嵌套的for循环,但无法使其正常工作。

非常感谢您!

1 个答案:

答案 0 :(得分:1)

您不需要嵌套循环-您只需要在循环中放入if条语句即可:

for year in range(0,21):
     # wolf population grows annually. You already did this part.
     wolf = wolf * (1 + wolf_growth / 100)

     # every 5 years, except the first year
     if (year % 5 == 0) and (year != 0):
        # wolf population decreases to half of the previous year population
        wolf /= 2

     print()
     print("Year  Wolf Population  Rabbit Population Available Grass     
       Area")
     print("%-2d%6d%19d%22.2f" %(year, wolf, rabbit,grass))

您可以看到只有在wolf /= 2year整除的情况下,行5才被激活(这就是%或'modulo'运算符的作用-如果将year除以5后的余数为0,则year5整除,并且不等于{{ 1}}(所以不是第一年)。不确定这是否能完全满足您的要求-您在问题中发布的内容有点令人困惑-但这应该很容易适应您的用例。