gpt4 book ai didi

python - 循环不迭代

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:09 24 4
gpt4 key购买 nike

我遇到了 for i in range(x) 循环不迭代的困境。我的程序的目的是模拟狐狸和兔子在岛上相互交流,并在每天之后打印出每只动物的数量。我知道方程式是正确的,我遇到的问题是我的循环在大范围内只运行一次。

我的代码:

def run_simulation():
print()
RABBIT_BIRTH_RATE = 0.01
FOX_BIRTH_RATE = 0.005
INTERACT = 0.00001
SUCCESS = 0.01
x = 0
y = 1
FOXES = eval(input("Enter the initial number of foxes: "))
print()
RABBITS = eval(input("Enter the initial number of rabbit: "))
print()
DAYS = eval(input("Enter the number of days to run the simulation: "))
print()
print("Day\t","Rabbits\t","Foxes\t")
print(0,"\t",RABBITS,"\t","\t",FOXES,"\t")
for i in range(DAYS):
RABBITS_START = round((RABBIT_BIRTH_RATE * RABBITS) - (INTERACT * RABBITS * FOXES))
FOXES_START = round((INTERACT * SUCCESS * RABBITS * FOXES) - (FOX_BIRTH_RATE * FOXES))
y = y + x
print (y,"\t",(RABBITS_START+RABBITS),"\t","\t",(FOXES_START+FOXES),"\t")
run_simulation()

当以 500 只狐狸、10000 只兔子和 1200 天为例运行时,我的输出将如下所示

Day  Rabbits     Foxes  
0 10000 500
1 10050 498

第二行输出重复剩余的 1199 次。任何帮助将不胜感激我无法弄清楚我做错了什么。

最佳答案

您在开头设置了 RABBITSRABBIT_BIRTH_RATE。然后,在每次循环迭代中,将 RABBITS_START 设置为涉及这两个数字的某个公式。您永远不会更改 RABBITSRABBIT_BIRTH_RATEFOXES 或任何其他值,因此每次运行循环时,您只是在计算再次使用相同的数字进行相同的操作。您需要在每次迭代时更新变量的值 --- 即,为 RABBITSFOXES 等设置一个新值。

关于python - 循环不迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18793601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com