python – 语法错误,期待换行

我在Eclipse中使用python 2.7.3 PyDev.从porter stemmer source code

if __name__ == '__main__':
    p = PorterStemmer()
    if len(sys.argv) > 1:
        for f in sys.argv[1:]:
            infile = open(f, 'r')
            while 1:
                output = ''
                word = ''
                line = infile.readline()
                if line == '':
                    break
                for c in line:
                    if c.isalpha():
                        word += c.lower()
                    else:
                        if word:
                            output += p.stem(word, 0,len(word)-1)
                            word = ''
                        output += c.lower()
                print output    # ---- ERROR
            infile.close()

我收到了错误

Encountered “output” at line 336, column 23. Was expecting one of:
… “(” … “[” … “;” … “,” … “.”
… “+” … “-” … “” … “/” … “//” …
“<<” … “>>” … “%” … “^” … “|” … “&” …
“=” … “>” … “<” … “==” … “<=” … “>=” …
“!=” … “+=” … “-=” … “
=” … “/=” … “//=”
… “%=” … “&=” … “|=” … “^=” … “<<=” …
“>>=” … “**=” … “or” … “and” … “not” …
“is” … “in” … “if” … “;” … “,” …

解决方法:

检查您正在使用的Python语法版本(如果是全局或每个项目设置,则无法调用).看起来你的语法是为Py3k设置的,其中print现在是一个函数而不是一个语句.

编辑:我认为没有理由让代码无法正常运行,前提是PyDev没有全力以赴 – 如果你不能直接从命令行调用的python.exe运行它,实际上可能会有一些偷偷摸摸的我错过了错误的语法.

上一篇:pydev / python中的“未定义变量:main”


下一篇:python – PyDev导入时间比使用命令行慢10倍