Найти тему
Курушкин Дмитрий

Аргументы print в Python, о которых мало кто знает. Курс: Python для начинающих. Урок #3

Рад приветствовать Вас на курсе по основам программирования в Python. В сегодняшнем уроке мы рассмотрим полный функционал функции print() и поиграемся с помощью нее со строками. А также рассмотрим арифметические операции в Python.

Создадим новый файл

Сейчас уже 3-ий по счету урок и я предлагаю создать для него новый файл в нашем проекте "lesson3.py". Для этого нажмем правой кнопкой мыши (ПКМ) по нашей корневой папке "pythonProject" - "New" - "Python File". И зададим имя файла "lesson3".

-2
-3

Хочется сразу подметить, что файл появился и в иерархии проекта, и сразу открылся для редактирования.

-4

Давайте снова напишем функцию print() с текстом "Привет, мой 3 урок". И не забудем про описание функции. Мы будем комментировать данную функцию на протяжении нескольких уроков, пока она плотно не отложится у нас в голове. А потом перестанем. Функция-то простая.

Код:

# Пишем текст в консоль
print('Привет, мой 3 урок!')
-5

Теперь нам нужно запустить этот скрипт. Однако есть нюанс. Если мы просто нажмем на значок "Run", то увидим текст из 1-го урока.

-6

Все дело в том, что IDE запомнила наш предыдущий выбор. А в прошлый раз мы выполняли файл lesson1.py. Это нужно поменять. Снова перейдем в "Run" - "Run"

-7

И на этот раз мы видим уже 2 доступных скрипта. Необходимо выбрать нужный lesson3.

-8

Теперь мы можем видеть, что наш lesson3.py сработал как надо. Более того, в верхней правой области IDE можно видеть текущий файл. Именно он будет запускаться по нажатию на иконку RUN. Если мы захотим вновь запустить lesson1.py нам снова надо перейти в "Run" - "Run" и выбрать его. Но мы этого делать не будем, а пойдем дальше. Я думаю тут все понятно.

-9

Функция print в Python

Хоть мы и рассмотрели главный функционал функции print(), это не все, что она может делать. Давайте немного поговорим о теории. У каждой функции есть набор обязательных и необязательных аргументов.

print() - это функция

А внутри функции мы пишем аргумент - наш текст

-10

Вообще функция print() в полной своей конструкции выглядит следующим образом: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Аргумент value

Главное не пугайтесь.

  1. value - это значение. Тот самый текст, который мы вводим.
  2. ... - говорит нам о том, что мы можем задавать несколько значений, отделяя их запятой.

Давайте попробуем. Разделим наш текст на 2 составляющих: "Привет," и "мой 3 урок!".

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет, ', 'мой 3 урок')
-11

Если мы запустим этот код, то получим все тот же текст.

Вывод

>> Привет, мой 3 урок!
-12

Но мы можем пойти еще дальше и разбить текст на 3 составляющих: "Привет", "мой" и "3 урок!".

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок' )
-13

И все также получим такой же вывод в консоли.

Вывод

>> Привет, мой 3 урок!
-14

И так можно разбивать текст сколько угодно раз. Поиграйтесь с этими аргументами. Сделайте каждое слово отдельным аргументом. Я не буду на этом останавливаться и пойду дальше.

Аргумент sep

Вспомним опять полную конструкцию нашей функции print():

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

  1. value - значение
  2. ... - еще значения
  3. sep - разделитель. И мы видим, что по дефолту разделителю присвоено ничего sep=' '. Между двух ' располагается один пробел.

Аргумент sep разделяет наши значения value одним пробелом. Давайте попробуем его убрать. Вообще sep - это необязательный параметр, его можно не указывать, как мы это делали ранее, довольствуясь лишь нашим текстом (то бишь value). Но теперь давайте его зададим.

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок!', sep='')
-15

Теперь если мы запустим скрипт, то увидим, что между аргументами value пропал проблем и все пишется слитно. За исключением, конечно же, "3 урок", потому что мы внутри аргумента задали этот пробел.

Вывод

>> Привет,мой3 урок!
-16

Давайте придумаем другой разделитель, например: " | "

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок!', sep=' | ')
-17

И посмотрим, что получилось.

Вывод

>> Привет, | мой | 3 урок!
-18

Также поиграйтесь с разделителями, чтобы запомнить как они работают.

Аргумент end

И вновь возвращаемся к конструкции нашей функции print():

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Рассмотрим аргумент end - этот аргумент добавляется в конец строки нашего вывода. По умолчанию имеет значение "\n", что означается переход на новую строку. Чтобы получше понять перенос на новую строку давайте добавим еще одну функцию print().

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок!', sep=' | ')
print('Моя вторая строка')
-19

Вывод следующий:

Вывод

>> Привет, | мой | 3 урок!
>> Моя вторая строка
-20

Две функции print() отработали как надо и отобразились на своей строке. Теперь давайте в первой функции добавим аргумент "end" и уберем перенос строки "\n".

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок!', sep=' | ', end='')
print('Моя вторая строка')
-21

Попробуем запустить скрипт.

Вывод

>> Привет, | мой | 3 урок!Моя вторая строка
-22

Как можно видеть, теперь после выполнения первой функции print() не происходит переноса на новую строку и наша вторая функция пишется слитно с первой. Давайте зададим конец строки для первой функции и вернем перенос строки.

Код

# Пишем текст в консоль "Привет, мой 3 урок!"
print('Привет,', 'мой', '3 урок!', sep=' | ', end='<== конец строк \n')
print('Моя вторая строка')
-23

Вывод

>> Привет, | мой | 3 урок!<== конец строк
Моя вторая строка
-24

Можете также поиграться с аргументом end. А также немного погордиться собой, потому что не каждый Python Джун знает об этих аргументах. Не то, чтобы эти аргументы супер важные и часто используются, но расширяют возможности для вывода данных.

Есть еще аргументы file и flush, которые мы пока не можем рассмотреть, потому что не владеем достаточным знанием Python. Но обязательно вернемся к ним, когда немного прокачаемся. Могу вкратце сказать, что аргумент file позволяет нам выводить данные не в консоль, а например в .txt файл. А аргумент flush используется для очищения потока (если ничего не поняли, то ничего страшного).

Нюанс по работе со строками

До этого мы вводили текст в функцию print() с помощью одинарных кавычек ''. Стоит отметить, что это лишь моя любовь к этим кавычкам, но на самом деле можно задавать текст с помощью двойных "".

Код

# Выводим текст с помощью двойных кавычек
print("Мой текст")
-25

А можно даже так

Код

# Выводим текст с помощью тройных кавычек
print('''Мой текст''')

# Выводим текст с помощью тройных кавычек
print("""Мой текст""")
-26

И все это замечательно работает!

<< Пред. Урок =========== След. Урок >>

-27