print语句python 2.7上的语法无效

时间:2016-10-25 17:01:10

标签: python python-2.7

我有一些代码来测试我编写的其他代码(在ipython笔记本中)。

print_closest = lambda w, wl: print('{}: {} ({})'.format(w, *closest_match(w, wl)))

这是我的代码,它适用于python 3环境。但是,它不适用于python 2.7。相反,它会抛出一个错误。

print_closest = lambda w, wl: print('{}: {} ({})'.format(w, *closest_match(w, wl)))
                                      ^
SyntaxError: invalid syntax

我想对上面的代码进行更改,以使其在python2.7环境以及python3上运行。

任何人都可以告诉我怎么样?提前谢谢。

2 个答案:

答案 0 :(得分:1)

在Python 2中,contained *arr是一个语句,而不是一个函数,不能在print表达式中使用。您可以通过添加lambda功能来使其工作:

print_function

答案 1 :(得分:1)

在Python 2中,bundle install是一个语句,而不是一个函数(作为一个函数,使用它将是一个表达式)。 $ rm -rf vendor/bundle $ bundle install 只能由表达式组成,而不是完整的语句。

也就是说,你可以在Py2上获得Py3 print函数。在要切换的模块中,添加以下内容作为文件中的第一行代码(在任何shebang或编码注释之后,在其他所有内容之前):

lambda

will make print a function as it is in Py3