Python代码可以运行,但是Eclipse显示错误 - 检测到元组时语法错误。

12

我是Python的新手。我在Eclipse Kepler中使用Python 3.3。

这是我的代码片段:

f = Fibonacci(0,1)
for r in f.series():
    if r > 100: break
    print(r, end=' ')

在代码行print(r, end='')处,Eclipse 报告了一个语法错误 - Syntax error while detecting tuple。但是,程序运行得很完美。

为什么会出现这种情况,如何修复错误?


4
Eclipse 必须针对 Python 2.x 进行校准,其中 print(r, end=' ') 将是非法语法。 - user2555451
@iCodez - 我不理解。我正在使用py 3.3。那么,这对我有什么影响吗? - Erran Morad
1
仅仅因为你使用的是py 3.3并不意味着Eclipse知道这一点。 - kwatford
1
我的意思是,Eclipse正在使用的系统可能遵循Python 2.x的语法规则。你发布的代码对于Python 3.x来说是可以的,但在Python 2.x中会引发“SyntaxError”。换句话说,你的IDE导致了问题;代码是好的。你需要找到一种方法告诉Eclipse遵循Python 3.x的语法规则。我不知道如何做到这一点,因为我不使用Eclipse,所以我在评论而不是发布答案。 - user2555451
5个回答

23

在Eclipse中,您需要指定正确的语法版本(Grammar Version)。请参见此处:Python3中的print函数

在您的设置中,语法版本(Grammar Version)是否为3.3?步骤- 项目 > 属性 > Python解释器/Grammar。您可能需要重新启动Eclipse才能看到更改。


4
我明白了我的错误。我进入了“窗口” > “首选项”,并在那里设置了Python解释器。实际上应该进入“项目” > “属性” > “Python解释器/语法”。我不得不重新启动Eclipse才能看到更改。 - Erran Morad

3
我知道这是一篇旧帖子,但对于那些在2018年及以后有类似问题的人来说,CodeMix for Eclipse是一个插件,您可以安装它来提升您的Python开发,几乎不需要任何配置。您将获得内容协助、验证、从重构到格式化等快捷命令。更多信息请查看此处

1
在Python 2.x中,print是一个内置关键字,不像Python 3.x中的函数那样使用,并且使用方式如下:
>>> print "hello", "world"
hello world

因此,Python假定(r, end= '')是包含两个值的元组,你正在尝试打印它。
您可能可以配置Eclipse使用Python 3.x语法。如果您正在使用PyDev,请查看this

0

在Eclipse中将运行路径更改为Python 3.x,而不是当前设置的Python 2.x。


2
你能否扩展一下这个答案,例如,为什么你认为Eclipse会设置使用Python 2而不是Python 3等。在这里,单句回答往往不被看好,即使它们包含正确的信息,也有可能被转换成评论。 - Keith Pinson

0

我觉得你可能实际上在使用Python 2。请尝试以下操作并报告结果:

import sys
print(sys.version)

编辑:

实际上,您报告的似乎是Eclipse的pydev中的一个已知bug:

http://sourceforge.net/p/pydev/bugs/913/


1
这真的是对问题的回答吗?难道不应该是一条评论吗? - anon582847382

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接