2011-06-22 63 views
-1

我有三重檢查這個Python模塊語句的語法,這是不工作...這個模塊有什麼問題?

correct = 0 
ahtriggercount = 0 

def IsCorrect(): 
    #Increase correct count. 
    correct = correct + 1 
    #Lower autohelp trigger count. 
    if ahtriggercount > 0: 
     ahtriggercount = ahtriggercount - 1 

一般的「語法錯誤」(沒有進一步的信息正被IDE中所示)被拋出時...

if ahtriggercount > 0: 

什麼是錯?爲什麼我們不能訪問ahtriggercount變量?

+7

最新錯誤? – tMC

+2

如果您需要幫助,請始終包含錯誤。更好的是閱讀錯誤,它可能會告訴你什麼是問題 –

回答

3

你需要告訴python你正在訪問一個全局變量。就像這樣:

correct = 0 
ahtriggercount = 0 

def IsCorrect(): 
    global correct, ahtriggercount 
    #Increase correct count. 
    correct = correct + 1 
    #Lower autohelp trigger count. 
    if ahtriggercount > 0: 
     ahtriggercount = ahtriggercount - 1 

全局變量是隻讀的,在默認情況下,除非您使用全球聲明。

您還有空白問題。其中一條線上有一些奇怪的空間。當我刪除空格並再次添加它們時,我停止了IndentationError。

+0

仍然沒有骰子。我們將變量完全按照所描述的那樣聲明爲全局變量,並且它仍然拋出相同的語法錯誤。 Ehhhhhhh ??? – CodeMouse92

+3

什麼是語法錯誤? – jterrace

+0

它只是說「無效的語法」,沒有更多的數據。甚至可以在獨立模塊的頂部聲明一個變量? – CodeMouse92

2

您需要聲明ahtriggercount並將其更正爲全局,因爲您正在修改其值。

def IsCorrect(): 
    global ahtriggercount, correct 
    #Increase correct count. 
    correct = correct + 1 
    #Lower autohelp trigger count. 
    if ahtriggercount > 0: 
     ahtriggercount = ahtriggercount - 1 
0

不知道錯誤信息我們只能猜測。但是,您的代碼段似乎在語法上是正確的。也許你混淆了空格和製表符,或者在一行中忽略了空格或製表符?在Python中,右縮進是至關重要的。