一个匪夷所思的Python报错

def Calc(x):
    for i in range(0,x):
        S.append(S[i]-r*Beta*S[i]*I[i]/n-r*beta*S[i]*E[i]/n)
        E.append(E[i]+r*Beta*S[i]*I[i]/n-Sigma*E[i]+r*beta*S[i]*E[i]/n)
        I.append(I[i]+Sigma*E[i]-Gamma*I[i])
        R.append(R[i]+Gamma*I[i])
Calc(10000)

(以上只是片段)

然后报错:

= RESTART: I:\王小鲁\科技创新比赛\程序\Programs\Program-I.py
>>> Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "I:\王小鲁\科技创新比赛\程序\Programs\Program-I.py", line 64, in Main
    Calc(1000)
  File "I:\王小鲁\科技创新比赛\程序\Programs\Program-I.py", line 42, in Calc
    S.append(S[i]-r*Beta*S[i]*I[i]/n-r*beta*S[i]*E[i]/n)
AttributeError: 'str' object has no attribute 'append'

S在哪里定义的,它不是列表而是字符串
如果是
S = ""
修改为
S = []

append用于list