<p>有很多方法可以达到你的效果。如果您只是想为您的案例找到一个解决方案,请使用<a href="http://docs.python.org/library/stdtypes.html#typesseq" rel="noreferrer">string multiplication</a>正如<a href="https://stackoverflow.com/questions/4499073/print-python-whithout-n/4499087#4499087">@Ant</a>所提到的那样。只有当每个<code>print</code>语句都打印相同的字符串时,这才起作用。注意,它适用于任意长度字符串的乘法(例如<code>'foo' * 20</code>工作)。</p>
<pre><code>>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa
</code></pre>
<p>如果您一般想这样做,请建立一个字符串,然后打印一次。这将占用字符串的一点内存,但只对<code>print</code>进行一次调用。注意,使用<code>+=</code>的字符串连接现在与要连接的字符串的大小成线性关系,因此这将非常快。</p>
<pre><code>>>> for i in xrange(20):
... s += 'a'
...
>>> print s
aaaaaaaaaaaaaaaaaaaa
</code></pre>
<p>或者可以更直接地使用<a href="http://docs.python.org/library/sys.html#sys.stdout" rel="noreferrer">sys.stdout</a>.<a href="http://docs.python.org/library/stdtypes.html#file.write" rel="noreferrer">write()</a>,它是<code>print</code>的包装。这将只写入您提供的原始字符串,而不进行任何格式化。注意,即使在20<code>a</code>s的末尾也不会打印换行符</p>
<pre><code>>>> import sys
>>> for i in xrange(20):
... sys.stdout.write('a')
...
aaaaaaaaaaaaaaaaaaaa>>>
</code></pre>
<p>Python 3将<code>print</code>语句更改为<a href="http://docs.python.org/library/functions.html#print" rel="noreferrer">print() function</a>,这允许您设置<code>end</code>参数。您可以在>;=2.6中使用它,方法是从<code>__future__</code>导入。不过,在任何严肃的2.x代码中,我都会避免这种情况,因为对于那些从未使用过3.x的人来说,这会有点让人困惑。不过,它应该能让您体验到3.x带来的好处。</p>
<pre><code>>>> from __future__ import print_function
>>> for i in xrange(20):
... print('a', end='')
...
aaaaaaaaaaaaaaaaaaaa>>>
</code></pre>