Запятая запятая Python после печати выполняет следующую команду
Если конечная запятая добавлена в конец оператора печати, следующий оператор выполняется первым. Почему это? Например, это выполняется 10000 ** 10000
перед печатью "Hi "
:
print "Hi",
print 10000 ** 10000
И это требует времени, прежде чем печатать "Привет, Hello":
def sayHello():
for i in [0] * 100000000: pass
print "Hello"
print "Hi",
sayHello()
Ответы
Ответ 1
-
В Python 2.x завершающий ,
оператор print
предотвращает испускание новой строки.
- В Python 3.x используйте
print("Hi", end="")
для достижения того же эффекта.
-
Стандартный вывод буферизируется по строке. Таким образом, "Hi"
не будет напечатано до того, как выйдет новая строка.
Ответ 2
Вы видите эффекты буферизации stdout: Отключить буферизацию вывода
Ответ 3
Как отмечают другие, стандартная буферизация. Вы можете попробовать использовать это в точках, которые вам нужны для вывода:
sys.stdout.flush()
Ответ 4
print автоматически помещает строку новой строки в конец строки. Это не обязательно то, что мы хотим; например, мы могли бы захотеть напечатать несколько частей данных по отдельности и показать их все на одной строке. Чтобы предотвратить добавление новой строки, поместите запятую в конец оператора печати:
d=6
print d,
print d
Output:
6 6