Python的动物种群

2024-04-23 13:37:22 发布

您现在位置: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年狼的数量就会减少到以前的一半 年人口由于流行性疾病的广泛传播。考虑到狼的初始数量, 计算每年狼的数量(提示:使用模运算符计算 疾病传播年的人口)。每年,狼的数量都需要更新 其增长率如下。此外,除第1年外,每5年一次(即仅在第6、11、16年),狼的数量 必须是前一年狼数量的一半”

我尝试使用嵌套for循环来处理这个部分,但无法使其工作。你知道吗

提前多谢!!!你知道吗


Tags: ininput数量ratemainareafloatint
1条回答
网友
1楼 · 发布于 2024-04-23 13:37:22

不需要嵌套循环-只需在循环中放入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))

您可以看到,只有当year都可以被5整除时,wolf /= 2行才会激活(这就是%,或称“模”运算符所做的-在除法之后取余数)。如果year除以5后的余数是0,则year可除以5),并且不等于0(因此,不是第一年)。不确定这是否准确地处理了您的需求—您在问题中发布的内容有点混乱—但这应该很简单,以适应您的用例。你知道吗

相关问题 更多 >