打印没有换行符(打印’a’,)打印一个空格,如何删除?

问题:

我有这个代码:

>>> for i in xrange(20):
...     print 'a',
... 
a a a a a a a a a a a a a a a a a a a a

我想输出'a',没有' '这样:

aaaaaaaaaaaaaaaaaaaa

可能吗?

回答:

有很多方法可以实现你的成果。如果您只想为您的案例提供解决方案,请使用string multiplication作为@Ant提及。如果您的每个print语句都打印出相同的字符串,这只能工作。请注意,它适用于任何长度字符串的乘法(例如'foo' * 20作品)。

>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa

如果你想这样做一般,建立一个字符串,然后打印一次。这将为字符串消耗一点内存,但只能调用print。请注意,使用+=的字符串连接现在在您连接的字符串的大小上是线性的,因此这将很快。

>>> for i in xrange(20):
...     s += 'a'
... 
>>> print s
aaaaaaaaaaaaaaaaaaaa

或者您可以使用sys.stdout write()直接使用它,print是一个包装。这将只写你给它的原始字符串,没有任何格式。请注意,即使在20 a的结尾,也不会打印换行符。

>>> import sys
>>> for i in xrange(20):
...     sys.stdout.write('a')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

Python 3将print语句更改为print() function,允许您设置end参数。您可以通过从__future__导入使用> = 2.6。我会在任何严重的2.x代码中避免这种情况,因为对于那些从未使用3.x的人来说,这将是一个有点混乱。但是,它应该给你带来一些3.x带来的好处。

>>> from __future__ import print_function
>>> for i in xrange(20):
...     print('a', end='')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Printing without newline (print ‘a’,) prints a space, how to remove?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 7 = 12