У меня есть этот код:
>>> 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
Возможно ли это?
У меня есть этот код:
>>> 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
Возможно ли это?
 Есть несколько способов достижения вашего результата. Если вы просто хотите найти решение для своего случая, используйте умножение строк, как упоминает @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>>> 
		Из PEP 3105: печать как функция в документе " Что нового в Python 2.6":
>>> from __future__ import print_function
>>> print('a', end='')
 Очевидно, что это работает только с python 3.0 или выше (или 2. 6+ с from __future__ import print_function в начале). Оператор print был удален и стал функцией print() по умолчанию в Python 3.0.
Вы можете подавить пробел, напечатав пустую строку в stdout между операторами print.
>>> import sys
>>> for i in range(20):
...   print 'a',
...   sys.stdout.write('')
... 
aaaaaaaaaaaaaaaaaaaa
Однако более чистое решение состоит в том, чтобы сначала построить всю строку, которую вы хотите распечатать, а затем вывести ее с помощью одного оператора print.
Вы можете напечатать символ обратного пространства ('\b'):
for i in xrange(20):
    print '\ba',
результат:
aaaaaaaaaaaaaaaaaaaa
		Python 3.x:
for i in range(20):
    print('a', end='')
Python 2.6 или 2.7:
from __future__ import print_function
for i in xrange(20):
    print('a', end='')
		Если вы хотите, чтобы они отображались по одному, вы можете сделать это:
import time
import sys
for i in range(20):
    sys.stdout.write('a')
    sys.stdout.flush()
    time.sleep(0.5)
 sys.stdout.flush() необходимо, чтобы заставить символ записываться каждый раз, когда цикл выполняется.
Как примечание:
Печать - это O (1), но построение строки, а затем печать O (n), где n - общее количество символов в строке. Так что да, строя строку "чище", это не самый эффективный способ сделать это.
То, как я это сделаю, выглядит следующим образом:
from sys import stdout
printf = stdout.write
Теперь у вас есть "функция печати", которая выводит любую строку, которую вы передаете, не возвращая новый символ строки каждый раз.
printf("Hello,")
printf("World!")
Вывод будет: Hello, World!
Однако, если вы хотите печатать целые числа, поплавки или другие нестроковые значения, вам придется преобразовать их в строку с помощью функции str().
printf(str(2) + " " + str(4))
Выход будет: 2 4
без чего? вы имеете в виду
>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa
?
Либо что Ant говорит, либо накапливается в строке, а затем печатается один раз:
s = '';
for i in xrange(20):
    s += 'a'
print s
		это действительно просто
для версий Python 3+ вам нужно только написать следующие коды
for i in range(20):
      print('a',end='')
 просто конвертируйте цикл в следующие коды, вам не нужно беспокоиться о других вещах
ВОТ ЭТО ДА!!!
Это довольно давно
Теперь, в Python 3.x это будет довольно легко
код:
for i in range(20):
      print('a',end='') # here end variable will clarify what you want in 
                        # end of the code
 выход:
aaaaaaaaaaaaaaaaaaaa 
 Подробнее о функции print()
print(value1,value2,value3,sep='-',end='\n',file=sys.stdout,flush=False)
 Здесь:
value1,value2,value3
 Вы можете распечатать несколько значений, используя запятые
sep = '-'
 3 значения будут разделены символом "-"
Вы можете использовать любой символ вместо этой четной строки, такой как sep = '@' или sep = 'good'
end='\n'
 по умолчанию функция печати ставит символ '\n' в конце вывода
но вы можете использовать любой символ или строку, изменив значение конечной переменной
например, end = '$' или end = '.' или конец = "Привет"
file=sys.stdout
 это значение по умолчанию, стандартный вывод системы
используя этот аргумент, вы можете создать поток выходного файла, как
print("I am a Programmer", file=open("output.txt", "w"))
 с помощью этого кода вы создадите файл с именем output.txt, где будут храниться ваши выходные данные, которые я являюсь программистом
flush = False
 Это значение по умолчанию, используя flush = True, вы можете принудительно очистить поток
так просто
def printSleeping():
     sleep = "I'm sleeping"
     v = ""
     for i in sleep:
         v += i
         system('cls')
         print v
         time.sleep(0.02)