JavaRush /Курсы /Модуль 1: Python Core /Продвинутая работа с функцией print()

Продвинутая работа с функцией print()

Модуль 1: Python Core
3 уровень , 9 лекция
Открыта

10.1 format()

Нам часто приходится выводить много данных в консоль (на экран). Не мы первые с этим столкнулись — поэтому уже давно в Python появилась функция format(), которая позволяет объединять строки и выводить данные на экран проще и понятнее.

Функция format() используется для вставки значений в строку в определенных позициях. Синтаксис функции выглядит следующим образом:


"Шаблон строки от {} до {}".format(значение1, значение2,…)

Факт 1. Функция format() — это дочерняя функция строки, поэтому она вызывается у строки. Вместо того чтобы передавать строку в функцию, мы пишем строку, затем ставим точку, а затем вызываем функцию format() и уже в нее передаем ее параметры.

Факт 2. Функция format() заполняет строку-шаблон переданными значениями. Она преобразовывает переданные значения в строки (если там были числа, например) и вставляет их в места, обозначенные символами {}. Такое место для вставки значения называется placeholder.

Базовое использование:


welcome_message = "Привет, {}, добро пожаловать в {}!"
print(welcome_message.format("Анна", "наш магазин"))               
        

Результат: "Привет, Анна, добро пожаловать в наш магазин!"

Форматирование чисел:


output = "Данные: {0:.2f} и {1:.2f}".format(3.1415926, 2.71828)
print(output)              
        

Результат: "Данные: 3.14 и 2.72" — демонстрация ограничения вывода до двух десятичных знаков.

Использование ключевых слов:


output = "{name} работает на {company}"
print(output.format(name="Сергей", company="Google"))
        

Результат: "Сергей работает на Google"

Использование format() улучшает читаемость и поддерживаемость кода, позволяя легко изменять формат без необходимости редактирования всей строки.

10.2 f-нотация

Начиная с версии 3.6 в Python появился новый тип строк — f-строки, которые буквально означают «formatted string». Эти строки улучшают читаемость кода, а также работают быстрее, чем другие способы форматирования.

Чтобы использовать f-строки, перед строкой ставится буква "f" или "F". Выражения для вставки помещаются в фигурные скобки {}:

Пример:


force = "Темная Сторона"
message = f"Да пребудет с тобой {force}!"
print(message)  # Выведет: Да пребудет с тобой Темная Сторона! 
        

Важно! В фигурных скобочках можно указывать переменные, которые доступны в текущей области видимости (об этом позднее) и Python сам преобразует их в строку и вставляет в нужное место.

Пример:


age = 28
message = f"Мне {age} лет"
print(message)  # Выведет: Мне 28 лет               
        

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

Пример:


birth_year = 1985
current_year = 2024
message = f"Мне {current_year - birth_year} лет"
print(message)  # Выведет: Мне 39 лет
        

Под капотом это все конвертируется в вызов функции format(), но новый подход действительно удобнее.

Пользуйтесь в свое удовольствие.

10.3 Параметры sep и end

В Python функция print() предоставляет два полезных параметра — sep и end, которые позволяют управлять выводом данных. Эти параметры делают функцию print() более гибкой и могут быть использованы для форматирования вывода без необходимости использования дополнительных функций или сложных строковых операций.

Параметр sep определяет символ или строку, которая будет использоваться для разделения нескольких значений, переданных в print(). По умолчанию sep установлен как пробел. Это означает, что если вы передадите несколько аргументов в print(), они будут разделены пробелом.

А если вы хотите, чтобы данные были разделены не пробелом, а, например, запятой, то вам нужно в самом конце добавить параметр sep и сразу присвоить ему новую строку-разделитель.

Пример:


            print("Hello", "world")  # Вывод: Hello world 
            print("Hello", "world", sep=", ")  # Вывод: Hello, world
        

Или можно, например, сделать так, чтобы каждое значение выводилось с новой строки. Тогда параметру sep нужно присвоить специальный символ перевода строки — он обозначается парой символов “\n”.

Пример Пояснение

print(1, 2, 3, 4, 5, sep=",\n")  

Цикл выведет на экран числа
1,
2,
3,
4,
5
            

Параметр end определяет, что будет напечатано после всех переданных значений. Стандартное значение end — символ новой строки (\n), что означает перевод строки после выполнения print().

Изменяя end, можно управлять тем, как выводятся данные, например, для продолжения вывода на той же строке:

Пример:


            print("Hello", end=" ")
            print("world")  # Вывод: Hello world               
        

Использование sep и end может быть чрезвычайно полезным в сценариях, где требуется особое форматирование вывода, например, при создании таблиц, отчетов или при выводе данных в одну строку без автоматического переноса на новую.

Помимо упрощения кода и избавления от необходимости вручную добавлять разделители или управлять переносами строк, использование sep и end повышает читаемость и поддерживаемость кода.

2
Задача
Модуль 1: Python Core, 3 уровень, 9 лекция
Недоступна
F-нотация
F-нотация
2
Задача
Модуль 1: Python Core, 3 уровень, 9 лекция
Недоступна
От sep до end
От sep до end
Комментарии (21)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dmitry Tolstov Уровень 7
17 октября 2025
Я так понмаю тут либо ручками в print() записывать аргументы от 1 до 5, либо как система предложила поставить оператор * вначале функции range(), иначе параметр sep не понимает переменных.
Mongoose Уровень 9
14 октября 2025
Выведите также число 5 в том же вызове print... Русским по белому написано: Напишите программу, которая выводит числа от 1 ДО 5!!! Напечатал end=" ". Нет, надо вставить Конец программы. в end вместо пробела.
Sanal Unkeev Уровень 4
8 сентября 2025
я правильно понимаю, без подписки на следующую лекцию не перейти?
Pavel Khaliullin Уровень 11
3 сентября 2025
Не засчитали попытку из-за того, что написал тебе вместо Тебе в print(). Замечательно!
Slevin Уровень 64
20 июня 2025
.format() - это не функция. Это метод строки.
Arut Chamyan Уровень 5
9 июня 2025
ребят если кому поможет в input пишите что в скобках, а не как я свои данные))) долго понять не мог почему не работает, и вроде уже правильное решение посмотрел и все равно)))) ошибка новечка))
Iwan_Halliday Уровень 1
27 апреля 2025
Всем недовольным посвящается. Прочитайте внимательно, что в кавычках написано, может быть символ какой-то забыли? Прям от кавычки до кавычки читайте. И привыкайте =))))
Алексей Уровень 6
9 марта 2025
И как я должен был догадаться, что после последнего числа должен быть пробел? Вы задания свои перепроверяете хоть? Для тех, кто хз как решать и что загадали эти дилетанты ответ должен быть 1*2*3*4*5 Конец программы
Christopher Robin Уровень 5
9 марта 2025
Да вроде логически можно догадаться что без пробела вывод не красиво выглядит. Я конечно тоже думал добавлять или нет, но решил с ним и с 1го раза прокатило.
SWK Уровень 26
12 марта 2025
"Логически догадаться" до того, кому как будет "красиво" невозможно, это вопрос личных предпочтений. Но, учитывая крайнюю неряшливость авторов в формулировках, я догадался, что они могли упустить информацию о пробеле по недомыслию. И не стал проверять, прокатит или нет, а посмотрел комментарии.
Иван Уровень 22
12 февраля 2025
Задание противоречит лекции, после (end=) пробел в лекции не указан, в задании же потребуется.
Дмитрий Уровень 29
30 января 2025
Слишком чувствительная проверка, дичь какая-то, пишите точнее что вы хотите увидеть, а то за каждый знак приходиться платится попытками