在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
,一切都开始顺利进行。
答案 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'])