您确定使用的是 Python 3.x 吗?该语法在 Python 2.x 中不可用,因为print
仍然是一个声明。
print("foo" % bar, end=" ")
在 Python 2.x 中等同于
print ("foo" % bar, end=" ")
or
print "foo" % bar, end=" "
即作为对 print 的调用,以元组作为参数。
这显然是错误的语法(文字不接受关键字参数)。在 Python 3.x 中print
是一个实际的函数,因此它也需要关键字参数。
Python 2.x 中正确的习惯用法是end=" "
is:
print "foo" % bar,
(注意最后的逗号,这使得它以空格而不是换行符结束行)
如果您想更多地控制输出,请考虑使用sys.stdout
直接地。这不会对输出产生任何特殊的魔力。
当然,在最近版本的 Python 2.x(2.5 应该有,不确定 2.4)中,您可以使用__future__
模块以在脚本文件中启用它:
from __future__ import print_function
同样的情况unicode_literals
和其他一些好东西(with_statement
, 例如)。不过,这在 Python 2.x 的真正旧版本(即在引入该功能之前创建)中不起作用。