2013-11-23 258 views
0

在shell中,当我尝试导入我的程序时,出现以下响应。Python语法错误无效

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "tweet.py", line 26 
     print "Favorited: %s" % (result['text']) 
          ^
SyntaxError: invalid syntax 

为什么print "Favorited: %s" % (result['text'])会返回错误?谷歌搜索已于事无补,这一点我们已经为我工作...

更新,我运行的Python的版本如下:再次

Python 2.7.5 |Anaconda 1.6.1 (x86_64)| (default, Jun 28 2013, 22:20:13) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 

更新,这里是功能:

def fetch_tweet(tweet): 
    try: 
     result = t.favorites.create(_id=tweet['id']) 
     print "Favorited: %s" % (result['text']) 
     return result 
    # when you have already favourited a tweet, this error is thrown 
    except TwitterHTTPError as e: 
     print "Error: ", e 
     return None 

更新#3 - 发现错误!

原来我的Python解释实在很讨厌一些代码我在上面,这与print某种程度上搞乱 - 我从文件的顶部删除from __future__ import print_function,一切都开始工作顺利进行。

+1

什么Python版本您使用的? – BrenBarn

+0

更新以上信息... – gersande

+1

它可能只是一个缩进问题。尽量减少到最简单的程序,重现问题,并重新发布整个代码。我相信你会得到有用的答案。 –

回答

2

我看看你得到了它的工作,但这里的解释:

Python 3的改变印刷是如何工作的各种原因。最大的变化是print现在是a function而不是语句(这是有帮助的,因为如果你想改变它打印到的位置,是否以换行符结束等,它允许你传递参数给它)

所以,当你有行:

from __future__ import print_function 

它是使用Python 3印刷,但你在Python运行2.一种解决方案(如你发现)是去除进口,但你可以还将print语句更改为函数。对于简单的语句是这样,你只需要添加括号,所以这会工作:

print("Favorited: %s" % (result['text'])) 

这也将工作:

print("Favorited: {}".format(result['text'])) 

print("Favorited:", result['text']) 
+0

你太棒了!谢谢! – gersande