2011-06-22 64 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中,右缩进是至关重要的。