+ 2
По поводу print
Господа, возник небольшой вопрос. Если использовать несколько раз "print", то данные выводятся каждый раз с новой строки. Можно ли сделать так, и как это сделать, чтобы несколько "print" писали в одну строку? (не предлагать включить все данные в один print)
1 ответ
+ 3
Да, у функции print есть несколько заданных по умолчанию аргументов. Один из них - end, символ, который добавляется в конце вывода. По умолчанию end = '\n', то есть символ перехода на новую строку. При вызове print, вы можете явно указать этот параметр:
print('Some text', end='') #указываем пустой завершающий символ
Также может быть полезен параметр sep. Он задает разделитель при выводе нескольких переменных:
>>> print(1,2,3, sep='-')
1-2-3
С помощью параметра file, можно писать вывод не в sys.stdout, а в заданный файл и т.д. Полный список аргументов функции можно посмотреть в документации https://docs.python.org/3/library/functions.html?highlight=print#print
Также есть функция sys.stdout.write(). Она в конце не добавляет пустую строку.
>>> from sys import stdout
>>> if True:
stdout.write('Mytext')
stdout.write('My2text')
MytextMy2text
Более того, print как раз и вызывает эту функцию при выводе в консоль. Таким образом, sys.stdout.write() к тому же еще и немного быстрее, что может оказаться важным при выводе больших объемов данных или соревновании алгоритмов на скорость.