Функция print
Вспомните машину python с лентой из прошлого урока: каждый вызов print печатает на ленте одну строку. Часто в эту строку нужно поместить несколько частей — подпись и число, имя и возраст. Для этого не нужны два вызова: функция print принимает несколько значений через запятую и печатает их через пробел.
print("Age:", 30) # Age: 30
print("a", "b", "c") # a b cЗначения в скобках называются аргументами функции. В первой строке примера их два:
"Age:"в кавычках — это строка, то есть текст;30без кавычек — это число.
print печатает строку без кавычек, а число — цифрами. Перед печатью каждое значение превращается в текст, поэтому строки и числа можно смешивать в одном вызове. Пробел между Age: и 30 ставит сама print: в строке "Age:" его нет.
Кавычки
Строку можно записать в двойных или в одинарных кавычках: "Hi" и 'Hi' — одна и та же строка. В примерах курса кавычки двойные.
Кавычки работают как границы строки. Интерпретатор читает текст от открывающей кавычки до такой же закрывающей. Поэтому другой вид кавычек выручает, когда кавычка есть в самом тексте:
print("It's late") # It's late
print('Say "hi"') # Say "hi"Давайте разберём обе строки:
- В
"It's late"апостроф стоит внутри двойных кавычек, поэтому строку он не завершает. - В
'Say "hi"'двойные кавычки стоят внутри одинарных и печатаются как обычные символы.
Строка заканчивается только на такой же кавычке, с какой началась.
Аргументы sep и end
Запись sep="-" в скобках — именованный аргумент: имя, знак = и значение. Обычные аргументы print печатает, а именованные задают, как именно печатать. Здесь нам понадобятся два таких аргумента — sep и end.
print("a", "b", "c", sep="-") # a-b-c
print("one", end=" ")
print("two") # one two
print()
print("end") # endАргумент sep
Аргумент sep задаёт, что print ставит между значениями. По умолчанию это пробел, поэтому print("a", "b", "c") печатает a b c. В первой строке примера sep="-" заменил пробелы на дефисы, и получилось a-b-c.
Строка без символов "" называется пустой. В sep она склеивает значения без пробела: print("a", "b", sep="") напечатает ab.
Аргумент end
Аргумент end задаёт, что печатается в конце. По умолчанию это переход на новую строку. Представьте, что после каждого print машина прокручивает ленту, и следующий вызов начинает с новой строки.
Давайте разберём строки примера со второй по пятую:
print("one", end=" ")печатаетoneи пробел, но ленту не прокручивает.print("two")продолжает ту же строку, и вместе получаетсяone two.print()без аргументов только прокручивает ленту, то есть печатает пустую строку вывода.print("end")печатаетendпосле этой пустой строки.
Порядок аргументов
Именованные аргументы пишут после обычных, через запятую, а между собой — в любом порядке. Например, print("a", "b", end=".", sep="") напечатает ab., как и тот же вызов с sep перед end.
Если поставить именованный аргумент перед обычным, программа не запустится. Интерпретатор сообщит ошибку SyntaxError: positional argument follows keyword argument.
Частая ошибка
Между аргументами пропущена запятая:
print("Age:" 30) # ✗SyntaxError: invalid syntax. Perhaps you forgot a comma?Без запятой интерпретатор не может разделить два значения и останавливается на этой строке. Сообщение заканчивается подсказкой о пропущенной запятой. Исправление — поставить её: print("Age:", 30).
Главное
printпечатает несколько аргументов через пробел: строки без кавычек, числа цифрами.- Строку пишут в двойных или одинарных кавычках, и она заканчивается на такой же кавычке, с какой началась.
sepзадаёт, что стоит между значениями, аend— что печатается в конце.- Именованные аргументы пишут после обычных.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.