我的全局變量在我的代碼中不起作用。我對此很新,我似乎無法弄清楚這一點:我設置了變量(只顯示gna),可以通過輸入字段操作,由相應的按鈕觸發。出於某種原因,它沒有在循環內進行更改。我試圖使它的地方改變的變量可以被繪製爲好,但它給了我下面的錯誤:全局變量不起作用
Exception in Tkinter callback Traceback (most recent call last):
File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 1549, in __call__
return self.func(*args) File "G:/PYTHON/Eulers.py", line 64, in graph
v[i + 1] = 1/c * (gna * f[i] - gk * u[i]) * del_t + v[i]
TypeError: ufunc 'multiply' did not contain a loop with signature matching types dtype('< U32') dtype('< U32') dtype('< U32')
下面是代碼:
gna = 0.9
gnalabel = Label(topFrame, text="gna = %s" % gna)
gnalabel.pack()
gnaEntry = Entry(topFrame, justify=CENTER)
gnaEntry.pack()
def gnacallback():
global gna
gna = gnaEntry.get()
gnalabel.config(text="C = %s" % gna)
gnaButton = Button(topFrame, text="Change", width=10, command=gnacallback)
gnaButton.pack()
def graph():
global c, gna, gk, beta, gamma
for i in range(0, len(t)-1):
stinum = np.floor(i/3000)
stimt = 3000 + 3000 * (stinum - 1)
f[i] = v[i] * (1 - (((v[i]) ** 2)/3))
v[i + 1] = 1/c * (gna * f[i] - gk * u[i]) * del_t + v[i]
if(i == stimt):
v[i + 1] = v[i + 1] + v_stim
u[i + 1] = (v[i] + beta - gamma * u[i]) * del_t + u[i]
plt.plot(v)
plt.show()
你的代碼是不是很Python的 - 你使用不必要的'()' –
全局變量更多的是一種不得已之類的話 –
@uoɥʇʎPʎzɐɹC我看不出有任何的。這是他們最擔心的問題,儘管 –