考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
考虑在Python中使用print的以下示例:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在每个值之间添加换行符或空格。我怎样才能避免这种情况,从而使输出。。。。相反换句话说,如何将字符串“附加”到标准输出流?
当前回答
在Python 3+中,print是一个函数。当你打电话时
print('Hello, World!')
Python将其翻译为
print('Hello, World!', end='\n')
你可以随心所欲。
print('Hello, World!', end='')
print('Hello, World!', end=' ')
其他回答
蟒蛇3:
print('Hello',end='')
例子:
print('Hello',end=' ')
print('world')
输出:你好,世界
此方法在提供的文本之间添加sperator:
print('Hello','world',sep=',')
输出:你好,世界
你想在for循环中打印一些东西;但你不希望每次都用新的行打印。。。
例如:
for i in range (0,5):
print "hi"
OUTPUT:
hi
hi
hi
hi
hi
但你希望它像这样打印:嗨嗨嗨嗨对吗????
只需在打印“hi”后添加逗号。
例子:
for i in range (0,5):
print "hi",
输出:
hi hi hi hi hi
我最近也有同样的问题。。。
我通过以下方式解决了这个问题:
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上测试过。
为Python 2.6+使用Python 3样式打印函数(它还将打破同一文件中任何现有的带关键字的打印语句)。
# For Python 2 to use the print() function, removing the print keyword
from __future__ import print_function
for x in xrange(10):
print('.', end='')
为了不破坏所有Python 2打印关键字,请创建一个单独的printf.py文件:
# printf.py
from __future__ import print_function
def printf(str, *args):
print(str % args, end='')
然后,在文件中使用它:
from printf import printf
for x in xrange(10):
printf('.')
print 'done'
#..........done
显示printf样式的更多示例:
printf('hello %s', 'world')
printf('%i %f', 10, 3.14)
#hello world10 3.140000
您可以在Python 3中执行以下操作:
#!usr/bin/python
i = 0
while i<10 :
print('.', end='')
i = i+1
并使用python filename.py或python3 filename.py。