簡體   English   中英

循環寫入多個文件會得到相同的文件

[英]Writing to multiple files in a loop gives identical files

試圖通過循環產生一些具有不同初始條件的方程。

我想獲取多個文件,由於“ while”循環,每個文件代表不同的初始條件,但是每個文件都是相同的,數據不會改變。 看不清楚我出了什么問題。

from scipy.integrate import odeint

P = 0      # birth rate
d = 0.0001  # natural death percent (per day)
B = 0.0095  # transmission percent  (per day)
G = 0.0001  # resurect percent (per day)
A = 0.0001  # destroy percent  (per day)

# solve the system dy/dt = f(y, t)
def f(y, t):
     Si = y[0]
     Zi = y[1]
     Ri = y[2]
     # the model equations (see Munz et al. 2009)
     f0 = P - B*Si*Zi - d*Si
     f1 = B*Si*Zi + G*Ri - A*Si*Zi
     f2 = d*Si + A*Si*Zi - G*Ri
     return [f0, f1, f2]

Si0 = 50
Zi0 = 20
Ri0= 20

for i in range(20):   
    while Zi0 < 105:
        Zi0 += 5
        y0=[Si0,Zi0,Ri0]
        print(Zi0)


        y = odeint(f, y0, [k*500 for k in range(40)], mxstep=1000)


    print('\n'.join(','.join('%+13.5f'%x for x in row) for row in \
    y),file=open("test_"+str(i)+".txt", "a"))

問題可能是您沒有重置Zi0。 因此,第一次在for循環中執行while循環,直到Zi0為105。然后第二次for循環開始且Zi0已經為105,因此它將跳過while循環並打印,並繼續跳過和打印其余的for循環。

不確定是否要更改每個for循環,因此無法為您提供更多...抱歉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM