Задачник · модуль 1 · Данные и имена

Справочник по Python · задачник · модуль 1

Задачи 1.4

1.4

Задачи к главе
«Параметры print(): sep и end»

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

Глава справочника
1.4 Параметры print(): sep и end
Можно использовать
главы 1.1–1.4
Разборов
3 с решением
Практика
15 задач без решения
Уже изучено — этим и решаем

Ввода с клавиатуры пока нет — он появится в главе 1.5. Поэтому исходные данные записываются в первые строки программы, а решение проверяется так: меняем данные наверху и запускаем снова. Ведущие нули вроде 09 пока не выводим: форматирование чисел по ширине — в главе 5.6.

§1Разборы: как решать и оформлять

Три задачи решены полностью. Смотрите не только на ответ, но и на оформление: исходные данные сверху, расчёт отдельными строками с понятными именами, вывод — в конце.

Разбор 1

Дата в двух форматах

★☆☆базовая

Даны день, месяц и год. Выведите дату в российском формате через точку и в международном — год, месяц, день через дефис.

Как рассуждаем

  1. Три значения и один общий разделитель — это ровно работа для sep.
  2. Порядок значений задаём порядком аргументов: для второго формата просто перечисляем их наоборот.
  3. Разделитель ставится только между значениями — ни в начале, ни в конце лишнего знака не появится.
main.pyрешение
# Исходные данные
day = 14
month = 9
year = 2026

# Вывод
print(day, month, year, sep=".")
print(year, month, day, sep="-")
Вывод в терминалрезультат запуска
14.9.2026
2026-9-14

Проверка на других данных

Пример 1
Данные в начале программы
day = 1
month = 12
year = 2027
Вывод
1.12.2027
2027-12-1
9, а не 09

Числа выводятся как есть, без ведущего нуля. Для настоящих дат это важно, но нужный инструмент — форматирование ширины — появится позже. Сейчас задача — собрать значения через общий разделитель.

Разбор 2

Ведомость оценок

★★☆средняя

Выведите маленькую ведомость: строку-шапку и две строки с фамилией, дисциплиной и оценкой. Колонки разделяются вертикальной чертой с пробелами.

Как рассуждаем

  1. Разделитель " | " одинаков во всех строках — значит, в каждом вызове один и тот же sep.
  2. Числа и строки можно смешивать: print() сам приведёт оценку к тексту.
  3. Ручной вариант "Иванов" + " | " + … длиннее и требует str() для оценки.
main.pyрешение
print("Фамилия", "Дисциплина", "Оценка", sep=" | ")
print("Иванов", "Python", 5, sep=" | ")
print("Петрова", "Базы данных", 4, sep=" | ")
Вывод в терминалрезультат запуска
Фамилия | Дисциплина | Оценка
Иванов | Python | 5
Петрова | Базы данных | 4
Когда sep, а когда f-строка

Разделитель одинаковый и значений много — sep. Между значениями разный текст — f-строка. Здесь все колонки разделены одинаково, поэтому sep короче и честнее.

Разбор 3

Установка программы

★★☆средняя

Установщик печатает шкалу прогресса в одной строке из нескольких вызовов, а затем список шагов — каждый с новой строки с маркером.

Как рассуждаем

  1. Чтобы следующий вывод продолжил ту же строку, у предыдущего вызова заменяем перевод строки: end="".
  2. Последний вызов оставляем без end — он и завершит строку.
  3. Для списка берём sep="\n- ": перевод строки и маркер встанут между пунктами одним параметром.
main.pyрешение
# Шкала прогресса из нескольких вызовов
print("Установка: ", end="")
print("#", end="")
print("#", end="")
print("#", end="")
print(" готово")

# Список шагов одним вызовом
print("Что сделано:", "скачан архив", "распакованы файлы", "создан ярлык", sep="\n- ")
Вывод в терминалрезультат запуска
Установка: ### готово
Что сделано:
- скачан архив
- распакованы файлы
- создан ярлык
\n — один символ

Запись \n выглядит как два знака, но означает перевод строки. В sep она стоит между значениями, поэтому перед первым пунктом маркер тоже появляется — сразу после заголовка.

§2Задачи для самостоятельной работы

Решений здесь нет — только условие и примеры, на которых решение нужно проверить. Сложность отмечена звёздами: ★☆☆ — прямое применение главы, ★★☆ — нужно собрать несколько шагов, ★★★ — есть подвох или требуется догадка.

Задача 1.4.1

Время на табло

★☆☆базовая

Табло на вокзале показывает время отправления. Даны часы, минуты и секунды — выведите их через двоеточие.

Примеры для проверки

Пример 1
Данные в начале программы
hours = 9
minutes = 45
seconds = 30
Вывод
9:45:30
Пример 2
Данные в начале программы
hours = 23
minutes = 10
seconds = 5
Вывод
23:10:5
Подсказка

Одна функция, три значения и один параметр.

Задача 1.4.2

IP-адрес

★☆☆базовая

Сетевой адрес хранится как четыре отдельных числа. Выведите адрес в привычном виде.

Примеры для проверки

Пример 1
Данные в начале программы
a = 192
b = 168
c = 1
d = 10
Вывод
192.168.1.10
Пример 2
Данные в начале программы
a = 10
b = 0
c = 0
d = 255
Вывод
10.0.0.255
Подсказка

Числа разделены точками, без пробелов.

Задача 1.4.3

Список покупок

★☆☆базовая

Выведите в одну строку заголовок «Купить:» и три товара через запятую с пробелом. Используйте два вызова print().

Примеры для проверки

Пример 1
Данные в начале программы
first = "хлеб"
second = "молоко"
third = "сыр"
Вывод
Купить: хлеб, молоко, сыр
Пример 2
Данные в начале программы
first = "кофе"
second = "сахар"
third = "печенье"
Вывод
Купить: кофе, сахар, печенье
Подсказка

После заголовка нужен пробел, а не перевод строки. Между товарами — свой разделитель.

Задача 1.4.4

Путь к файлу

★☆☆базовая

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

Примеры для проверки

Пример 1
Данные в начале программы
folder = "projects"
subfolder = "python"
file_name = "main.py"
Вывод
projects/python/main.py
Пример 2
Данные в начале программы
folder = "docs"
subfolder = "2026"
file_name = "report.txt"
Вывод
docs/2026/report.txt
Подсказка

Все части разделены одним и тем же знаком.

Задача 1.4.5

Ингредиенты столбиком

★☆☆базовая

Даны три ингредиента. Выведите их одним вызовом print(), каждый на своей строке.

Примеры для проверки

Пример 1
Данные в начале программы
first = "мука"
second = "молоко"
third = "яйца"
Вывод
мука
молоко
яйца
Подсказка

Разделителем может быть перевод строки.

Задача 1.4.6

Строка CSV

★☆☆базовая

Таблицы часто сохраняют в формате CSV, где колонки разделены точкой с запятой. Выведите строку заголовков и строку с данными.

Примеры для проверки

Пример 1
Данные в начале программы
name = "Анна"
age = 19
city = "Казань"
Вывод
Имя;Возраст;Город
Анна;19;Казань
Пример 2
Данные в начале программы
name = "Пётр"
age = 45
city = "Омск"
Вывод
Имя;Возраст;Город
Пётр;45;Омск
Подсказка

Один и тот же sep в обоих вызовах.

Задача 1.4.7

Ход установки

★☆☆базовая

Выведите в одну строку тремя вызовами: «0% ... 50% ... 100%».

Примеры для проверки

Пример 1
Вывод
0% ... 50% ... 100%
Подсказка

У двух первых вызовов окончание строки заменено, у последнего — нет.

Задача 1.4.8

Номер телефона

★★☆средняя

В базе клиентов номер хранится частями: код оператора и три группы цифр — строками. Выведите номер в формате, как в примерах.

Примеры для проверки

Пример 1
Данные в начале программы
code = "495"
part1 = "123"
part2 = "45"
part3 = "67"
Вывод
+7 (495) 123-45-67
Пример 2
Данные в начале программы
code = "912"
part1 = "000"
part2 = "11"
part3 = "22"
Вывод
+7 (912) 000-11-22
Подсказка

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

Задача 1.4.9

Строка меню

★★☆средняя

Меню кафе печатается так: название блюда, многоточие с пробелами и цена с «руб.» — всё в одну строку, но из двух вызовов print().

Примеры для проверки

Пример 1
Данные в начале программы
dish = "Борщ"
price = 320
Вывод
Борщ ... 320 руб.
Пример 2
Данные в начале программы
dish = "Салат Цезарь"
price = 450
Вывод
Салат Цезарь ... 450 руб.
Подсказка

Многоточие можно передать в end первого вызова.

Задача 1.4.10

Хештеги к посту

★★☆средняя

Даны три слова. Выведите их хештегами через пробел, как в примерах. Используйте два вызова print() и параметры sep и end.

Примеры для проверки

Пример 1
Данные в начале программы
tag1 = "python"
tag2 = "учёба"
tag3 = "код"
Вывод
#python #учёба #код
Пример 2
Данные в начале программы
tag1 = "осень"
tag2 = "парк"
tag3 = "фото"
Вывод
#осень #парк #фото
Подсказка

Разделитель ставится только между значениями, поэтому перед первым словом решётку нужно вывести отдельно.

Задача 1.4.11

Адрес доставки

★★☆средняя

Даны город, улица, номер дома и квартиры. Выведите адрес одной строкой, как в примерах.

Примеры для проверки

Пример 1
Данные в начале программы
city = "Казань"
street = "Баумана"
house = 12
flat = 5
Вывод
Казань, ул. Баумана, д. 12, кв. 5
Пример 2
Данные в начале программы
city = "Москва"
street = "Тверская"
house = 7
flat = 101
Вывод
Москва, ул. Тверская, д. 7, кв. 101
Подсказка

Между частями разный текст. Можно сделать разделитель пустым и передать все кусочки текста отдельными значениями.

Задача 1.4.12

Расписание с табуляцией

★★☆средняя

Выведите расписание из трёх строк: день, дисциплина и аудитория, разделённые табуляцией.

Примеры для проверки

Пример 1
Вывод
Пн	Python	ауд. 305
Ср	Базы данных	ауд. 210
Пт	Сети	ауд. 118
Подсказка

Табуляция записывается как \t.

Задача 1.4.13

Дата и время одной строкой

★★☆средняя

Даны день, месяц, год, часы и минуты. Выведите дату через точку и время через двоеточие в одной строке, используя два вызова print().

Примеры для проверки

Пример 1
Данные в начале программы
day = 14
month = 9
year = 2026
hours = 9
minutes = 45
Вывод
14.9.2026 9:45
Пример 2
Данные в начале программы
day = 31
month = 12
year = 2026
hours = 23
minutes = 59
Вывод
31.12.2026 23:59
Подсказка

В первом вызове нужны оба параметра сразу.

Задача 1.4.14

Рамка для таблички

★★★повышенная

Нужно напечатать табличку с надписью в рамке. Ширина рамки подстраивается под длину слова: слева и справа от слова по одному пробелу.

Примеры для проверки

Пример 1
Данные в начале программы
word = "PYTHON"
Вывод
+--------+
| PYTHON |
+--------+
Пример 2
Данные в начале программы
word = "Hi"
Вывод
+----+
| Hi |
+----+
Пример 3
Данные в начале программы
word = "Открыто"
Вывод
+---------+
| Открыто |
+---------+
Подсказка

Длину слова даёт len() из главы 1.2, линию — умножение строки. Посчитайте линию один раз и используйте в верхней и нижней строке.

Задача 1.4.15

Полоса прогресса

★★★повышенная

Даны число выполненных шагов и общее число шагов. Выведите полосу прогресса: в квадратных скобках решётки за выполненные шаги и точки за оставшиеся, затем «выполнено/всего».

Примеры для проверки

Пример 1
Данные в начале программы
done = 7
total = 10
Вывод
[#######...] 7/10
Пример 2
Данные в начале программы
done = 0
total = 5
Вывод
[.....] 0/5
Пример 3
Данные в начале программы
done = 12
total = 12
Вывод
[############] 12/12
Подсказка

Строку можно повторить умножением (глава 1.2). Количество точек — это оставшиеся шаги.

§3Как проверить своё решение

  1. Запишите данные из колонки «Данные в начале программы» в первые строки решения.
  2. Запустите программу и сравните вывод с колонкой «Вывод» — символ в символ: пробелы, двоеточия, точка вместо запятой.
  3. Замените данные на значения из следующего примера и запустите ещё раз. Решение верное, если при любых данных менять приходится только верхние строки.
Оформление, которое проверяют

Имена переменных называют смысл: total_cost, а не x. Данные — вверху, расчёт — отдельными строками, вывод — в конце. Одно и то же выражение не повторяется: результат сохраняется в переменную и дальше используется по имени.

Задачи к главе 1.4 · Параметры print(): sep и end · Задачник по Python Автор: Макаров Максим Николаевич