考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
当前回答
你会注意到以上所有答案都是正确的。但我想做一个捷径,始终在结尾处写入“end=''”参数。
您可以定义如下函数
def Print(*args, sep='', end='', file=None, flush=False):
print(*args, sep=sep, end=end, file=file, flush=flush)
它将接受所有数量的参数。甚至它也会接受所有其他参数,如file、flush等,并使用相同的名称。
其他回答
其中许多答案似乎有点复杂。在Python 3.x中,您只需执行以下操作:
print(<expr>, <expr>, ..., <expr>, end=" ")
end的默认值为“\n”。我们只是将其更改为空格,或者您也可以使用end=“”(无空格)来执行printf通常所做的操作。
Python 3.x中的print函数有一个可选的结束参数,可用于修改结束字符:
print("HELLO", end="")
print("HELLO")
输出:
你好,你好
分隔符也有sep:
print("HELLO", "HELLO", "HELLO", sep="")
输出:
你好你好
如果您想在Python2.x中使用它,只需在文件开头添加:
from __future__ import print_function
注意:这个问题的标题以前类似于“How to printf in Python”
由于人们可能会根据标题来这里寻找它,Python也支持printf样式替换:
>>> strings = [ "one", "two", "three" ]
>>>
>>> for i in xrange(3):
... print "Item %d: %s" % (i, strings[i])
...
Item 0: one
Item 1: two
Item 2: three
而且,您可以方便地相乘字符串值:
>>> print "." * 10
..........
如何在同一行打印:
import sys
for i in xrange(0,10):
sys.stdout.write(".")
sys.stdout.flush()
for i in xrange(0,10): print '\b.',
这在2.7.8和2.5.2(分别为焓盖和OS X终端)中都有效——不需要模块导入或时间旅行。