Квиз
Вопрос 1
Чем генератор отличается от обычной функции?
- Генератор использует
yield, а неreturn. - Генератор возвращает сразу все значения.
- Генератор запоминает состояние между вызовами.
- Генератор создаёт бесконечные последовательности.
Вопрос 2
Что выведет следующий код?
def squares(n):
for i in range(n):
yield i ** 2
gen = squares(4)
for num in gen:
print(num)
- 0, 1, 4, 9
- 0, 1, 4, 9, StopIteration
Вопрос 3
Какие из следующих утверждений о генераторах верны?
- Генератор вычисляет элементы по запросу.
- Генератор можно вызвать несколько раз и он всегда начинает сначала.
- Генератор можно использовать в
for. - Генератор занимает меньше памяти, чем список.
Вопрос 4
Какой код создаст генератор для квадратов чисел от 1 до 5?
def squares(): yield [x**2 for x in range(1, 6)]def squares(): for x in range(1, 6): yield x**2squares = [x**2 for x in range(1, 6)]squares = (x**2 for x in range(1, 6))
Вопрос 5
Что напечатает следующий код?
def task_cycle():
yield from ["A", "B", "C"]
gen = task_cycle()
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
- A, B, C, A
- A, B, C, None
- A, B, C, StopIteration
- Ошибка, так как
yield fromнельзя использовать со списками.
Вопрос 6
Какой код создаст бесконечный генератор?
def infinite_loop(): while True: yield 1def infinite_loop(): yield from range(10)def infinite_loop(): for i in range(10): yield iimport itertools def infinite_loop(): yield from itertools.cycle([1, 2, 3])def infinite_loop(): while True: yield from range(10)
Вопрос 7
Что произойдёт при выполнении кода?
import json
data = {"x": 1, "y": 2}
json_str = json.dumps(data, indent=4, sort_keys=True)
print(json_str)
- Будет ошибка,
sort_keysнельзя использовать сindent. - Будет выведен JSON без отступов.
- Будет выведен отсортированный и отформатированный JSON.
Вопрос 8
Какой результат даст следующий код?
import json
data = {"имя": "Алиса", "город": "Минск"}
json_str = json.dumps(data)
print(json_str)
Вопрос 9
Сопоставьте Python-тип его соответствию в JSON:
NoneTypebooltupledictliststr
- array
- null
- object
- string
- boolean
Вопрос 10
Что выведет следующий код?
from datetime import datetime, timedelta
start = datetime(2025, 1, 30)
delta = timedelta(days=10)
new_date = start + delta
print(new_date.strftime("%d-%m-%Y"))
- 08-02-2025
- 09-02-2025
- 10-02-2025
- 11-02-2025
Вопрос 11
Сопоставьте формат с результатом:
"%Y.%m.%d""%A.%d.%B""%B.%d.%Y""%d.%m.%Y"
- Friday.28.February
- 2025.02.28
- 28.02.2025
- February.28.2025
Вопрос 12
Что выведет следующий код?
from datetime import datetime
dt = datetime(2025, 2, 28, 14, 30, 15)
print(dt.strftime("%H:%M"))
- 2:30
- 14:30
- 14.30
- 02:30
Практическая работа: Поиск просроченных задач
Реализуйте программу, которая должна:
- Прочитать задачи из файла
tasks_with_deadline.json.- Каждая задача содержит название, срок выполнения и статус (
doneилиpending).
- Каждая задача содержит название, срок выполнения и статус (
- Запросить у пользователя дату в формате
dd-mm-yyyyили использовать текущую. - Найти все задачи, которые:
- не выполнены (
pending); - и срок которых истёк на указанную дату.
- не выполнены (
- Вывести список просроченных задач на экран.
Данные
[
{"title": "Audit finances", "deadline": "23-12-2025", "status": "done"},
{"title": "Schedule interviews", "deadline": "10-06-2025", "status": "done"},
{"title": "Update CRM", "deadline": "08-02-2025", "status": "done"},
{"title": "Plan event", "deadline": "15-09-2025", "status": "pending"},
{"title": "Team meeting", "deadline": "15-04-2025", "status": "pending"},
{"title": "Plan event", "deadline": "23-05-2025", "status": "pending"},
{"title": "Backup server", "deadline": "19-03-2025", "status": "pending"},
{"title": "Host webinar", "deadline": "20-02-2025", "status": "done"},
{"title": "Sign contract", "deadline": "28-07-2025", "status": "pending"}
]
Пример вывода
Введите дату проверки (dd-mm-yyyy) или нажмите Enter для текущей: 03-03-2025
Просроченные задачи:
- Post job ad (17-02-2025)
- Sign contract (08-01-2025)
- Team meeting (06-01-2025)
- Update website (22-02-2025)
- Prepare slides (12-02-2025)
- Review performance (04-01-2025)
- Refactor code (31-01-2025)