Есть несколько способов достижения вашего результата. Если вы просто хотите найти решение для своего случая, используйте умножение строк , как упоминалось @ 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 () функцию , которая позволяет вам установить параметр end
. Вы можете использовать его в> = 2.6, импортируя из __future__
. Я бы избегал этого в любом серьезном коде 2.x, поскольку это будет немного запутанным для тех, кто никогда не использовал 3.x. Тем не менее, он должен дать вам почувствовать вкус добра, который приносит 3.x.
>>> from __future__ import print_function
>>> for i in xrange(20):
... print('a', end='')
...
aaaaaaaaaaaaaaaaaaaa>>>