⇤ ← Версия 1 от 2021-10-28 12:49:58
42
Комментарий:
|
3424
|
Удаления помечены так. | Добавления помечены так. |
Строка 1: | Строка 1: |
= 07.10 Итераторы = '''TODO''' |
= 10.07 Итераторы = [[LecturesCMC/PythonIntro2020/Prac/ZoomSeminars|Пример использования Zoom на семинарах ВМК]] * Проверяем настройки * Проверяем layout с демонстрацией преподавателя + работой * Проверяем самостоятельную работу с демонстрацией экранов * Копипастим [[../RepoStruct#Class|пример оформления тестов к заданию типа «написать функцию»]], заставляем его работать * Выбираем чат == Итераторы == Просто итераторы * Циклический конструктор и его использование, зачем нужен * Функция-генератор и `yield` * <!> Задача_1, просто на итератор. * числа Фибоначчи - последовательность, начинающаяся с 1, 1, и продолжающаяся так, что очередной элемент равен сумме двух предшествующих элементов. * написать итератор `fib(m, n)`, возвращающий числа Фибоначчи, начинаю с m-го и заканчивая n-м (m>=n), в нумерации с 0 * пример: * вход: `2, 4` * выход: `2, 3, 5` Немного об [[py3doc:itertools]]: * Удобство и простота * Особенности `tee()` и `islice()` и других ''воспроизводящих'' итераторов — чудес на свете не бывает * Комбинаторика Зачем нужен `yield from` * Пример * <!> Задача_2, на `yield from`: Скользящее окно * написать итератор `slide(seq, n)`, который получает на вход последовательность A,,0,,, A,,1,, … , A,,n,,, …, а на выходе выдаёт A,,0,,, A,,1,, … , A,,n-1,,, ''A,,1,,, A,,2,, … A,,n,,'', A,,2,,, A,,3,, … A,,n+1,, и т. д. * Нам помогут `itertools.islice()` и `yield from`! * <!> Задача_3 — на [[py3doc:itertools]] (на комбинаторику, с естественной формулировкой): '''Священные Надписи''' * поклонники бога Тора используют в своих надписях три буквы: T, O, R. Надпись считается священной, если имя бога (подстрока "TOR") входит в неё ровно два раза * напишите программу-однострочник, которая при помощи itertools и filter формирует все священные надписи заданной длины, причём в алфавитном порядке * пример: * вход: `6` * выход: `TORTOR` * вход: `7` * выход: `OTORTOR`, `RTORTOR`, `TOROTOR` … и т.п. == Д/З == * Ещё раз посмотреть как [[../RepoStruct#Class|оформляются тесты к заданию типа «написать функцию»]] * Оформить решения и не менее трёх тестов для каждой задачи |
10.07 Итераторы
Пример использования Zoom на семинарах ВМК
- Проверяем настройки
- Проверяем layout с демонстрацией преподавателя + работой
- Проверяем самостоятельную работу с демонстрацией экранов
Копипастим пример оформления тестов к заданию типа «написать функцию», заставляем его работать
- Выбираем чат
Итераторы
Просто итераторы
- Циклический конструктор и его использование, зачем нужен
Функция-генератор и yield
Задача_1, просто на итератор.
- числа Фибоначчи - последовательность, начинающаяся с 1, 1, и продолжающаяся так, что очередной элемент равен сумме двух предшествующих элементов.
написать итератор fib(m, n), возвращающий числа Фибоначчи, начинаю с m-го и заканчивая n-м (m>=n), в нумерации с 0
- пример:
вход: 2, 4
выход: 2, 3, 5
Немного об itertools:
- Удобство и простота
Особенности tee() и islice() и других воспроизводящих итераторов — чудес на свете не бывает
- Комбинаторика
Зачем нужен yield from
- Пример
Задача_2, на yield from: Скользящее окно
написать итератор slide(seq, n), который получает на вход последовательность A0, A1 … , An, …, а на выходе выдаёт A0, A1 … , An-1, A1, A2 … An, A2, A3 … An+1 и т. д.
Нам помогут itertools.islice() и yield from!
Задача_3 — на itertools (на комбинаторику, с естественной формулировкой):
Священные Надписи
- поклонники бога Тора используют в своих надписях три буквы: T, O, R. Надпись считается священной, если имя бога (подстрока "TOR") входит в неё ровно два раза
- напишите программу-однострочник, которая при помощи itertools и filter формирует все священные надписи заданной длины, причём в алфавитном порядке
- пример:
вход: 6
выход: TORTOR
вход: 7
выход: OTORTOR, RTORTOR, TOROTOR … и т.п.
Д/З
Ещё раз посмотреть как оформляются тесты к заданию типа «написать функцию»
- Оформить решения и не менее трёх тестов для каждой задачи