我在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()
我收到错误
在第336行第23栏遇到“输出”。期待以下之一:
......“(”......“[”......“;”......“,”......“。” ......“+”......“ - ”......“”......“/”......“//”...... “<<” ......“>>” ......“%”......“^”......“|” ......“&” ... “=”......“>” ......“<” ......“==”......“< =”......“> =”...... “!=”......“+ =”......“ - =”......“ =”...“/ =”...“// =” ...“%=”...“& =”...“| =”......“^ =”...“<< =”... “>> =”......“** =”...“或”......“和”......“不是”...“ “是”......“在”......“如果”......“;” ......“,”......
答案 0 :(得分:5)
检查您正在使用的Python语法版本(如果是全局或每个项目设置,则无法回想起)。看起来你的语法是为Py3k设置的,其中print
现在是一个函数而不是一个语句。
编辑:我认为没有理由让代码无法正常运行,只要PyDev没有全力以赴 - 如果你不能直接从命令行调用的python.exe运行它,可能实际上是一些我错过的偷偷摸摸的坏语法。
答案 1 :(得分:3)
尝试print
作为函数......
print(output)
另外,检查你的Eclipse设置,看看你正在使用哪个python版本......
答案 2 :(得分:2)
所以问题是PyDev有一个内置的解释器,它在编辑器中使用,但它在代码运行时使用外部解释器。虽然我的计算机上只安装了python 2.7.3并且由eclipse pydev自动配置,但内置解释器设置为3.0。此外,PyDev下的选项菜单中没有内置的解释器设置,而是隐藏了它。当右键单击文件资源管理器中的项目标题并选择属性时,则会有另一个解释器设置。此外,需要关闭所有编辑器窗口并重新打开它们才能使用更新的设置。