无效的Python语法错误

时间:2013-11-23 05:46:11

标签: python

在shell中,当我尝试导入程序时收到以下响应。

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 个答案:

答案 0 :(得分:2)

我看到你让它运转了,但这是解释:

Python 3因各种原因改变了打印方式。最大的变化是print现在是a function而不是语句(这很有用,因为如果你想改变它打印到的地方,它是否允许你传递参数,是否以换行符等终止

所以当你有这条线时:

from __future__ import print_function

它使用的是Python 3打印,但您在Python 2中运行。一个解决方案(如您所见)是删除导入,但您也可以将print语句更改为函数。对于像这样的简单语句,你只需要添加parens,这样就可以了:

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

这些也有效:

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

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