语法错误,我似乎无法解决

时间:2016-01-18 15:20:06

标签: python syntax

我正在制作一个供个人使用的网络嗅探工具,但我无法在我的代码中找到语法错​​误,顺便说一下,这是Python 2.7.9。

这是代码;

def main():
    global listen 
    global port
    global command 
    global execute 
    global upload_destination
    global target

    if not len(sys.argv[1:]):
        usage()
    #read the commandline options

它表示错误在下面的3行中有任何想法?

try: 
        opts, args = getopt.getopt(sys.argv[1:],"hle:t:p:cu:", ¬ ["help","listen","execute","target","port","command","upload"])
except getopt.GetoptError as err:
    print str(err)
    usage()

我觉得Python 2和3之间存在混淆,但我不确定。

2 个答案:

答案 0 :(得分:1)

¬ ["help","listen","execute","target","port","command","upload"])

“¬”这不是有效的Python语法。删除它应该可以解决问题。

此外,将来可能会发布输出中显示的实际错误。

答案 1 :(得分:0)

首先,这在程序中无效:¬。这是Unicode,它基本上不能放在你所有的位置。从什么时候Python允许Unicode作为程序中的命令?它无效且位置错误。现在这样做会有效:

print "¬"

这是一个字符串,所以没有错,但是程序中的用法会导致语法错误,因为没有名为¬的命令。此外,在try语句中,您有一个8个空格的缩进。您只能在程序中使用4或2空格缩进。

编辑:好的,你可以在程序中使用8空格缩进,但是你需要在每一行缩进时使用8(或8的倍数)空格。由于您的缩进不一致,这也可能是您收到错误的原因。