考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
当前回答
您可以在Python 3中执行以下操作:
#!usr/bin/python
i = 0
while i<10 :
print('.', end='')
i = i+1
并使用python filename.py或python3 filename.py。
其他回答
对于Python 2和更早版本,它应该像Re中描述的那样简单:没有CR如何打印?作者:Guido van Rossum(意译):
是否可以打印某些内容,但不能自动生成是否附加回车?
是的,在要打印的最后一个参数后附加逗号。例如,此循环将数字0..9打印在由空格分隔的行上。请注意添加最后一行的无参数“print”:
>>> for i in range(10):
... print i,
... else:
... print
...
0 1 2 3 4 5 6 7 8 9
>>>
Python 3.x中的print函数有一个可选的结束参数,可用于修改结束字符:
print("HELLO", end="")
print("HELLO")
输出:
你好,你好
分隔符也有sep:
print("HELLO", "HELLO", "HELLO", sep="")
输出:
你好你好
如果您想在Python2.x中使用它,只需在文件开头添加:
from __future__ import print_function
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i)
上述代码给出以下输出:
0
1
2
3
4
但是,如果您想在一条直线上打印所有这些输出,那么您需要做的就是添加一个名为end()的属性来打印。
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i, end=" ")
输出:
0 1 2 3 4
不仅是空格,还可以为输出添加其他结尾。例如
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i, end=", ")
输出:
0, 1, 2, 3, 4,
记得:
Note: The [for variable in range(int_1, int_2):] always prints till the variable is 1
less than it's limit. (1 less than int_2)
我最近也有同样的问题。。。
我通过以下方式解决了这个问题:
import sys, os
# Reopen standard output with "newline=None".
# in this mode,
# Input: accepts any newline character, outputs as '\n'
# Output: '\n' converts to os.linesep
sys.stdout = os.fdopen(sys.stdout.fileno(), "w", newline=None)
for i in range(1,10):
print(i)
这在Unix和Windows上都有效,但我还没有在Mac OS X上测试过。
或具有如下功能:
def Print(s):
return sys.stdout.write(str(s))
现在:
for i in range(10): # Or `xrange` for the Python 2 version
Print(i)
输出:
0123456789