Циклы и последовательности
Цикл while
Общий вид цикла while.
- Примитивная рекурсия (счётчик). Отличие цикла от рекурсии. Что умеет рекурсия, а цикл — нет.
- Общая рекурсия (ввод до 0).
- Каноническая схема цикла:
- Инициализация
- Проверка условия
- Тело
- Изменение
- Вложенные циклы
break и continue
- Поиск первого
else для while
Цикл for
- Проход строк и кортежей
- Проход генерируемых последовательностей
range(), enumerate()
Поиск первого и for
(внезапно) операция in, распаковка
Индексирование и секционирование последовательностей
- Индексирование, отрицательные индексы
- Секционирование, шаг, отрицательный шаг, умолчания
- [:] как неглубокая копия
- range() — индексируемо
Под капотом: .__getitem__()
- индексирование
секционирование — тип slice()
Проход последовательности с индексированием vs enumerate()
Д/З
1#0. Прочитать и прощёлкать Седьмую и восьмую главы учебника.
- TODO
- TODO
EJudge: SecondMax 'Второй максимум'
Ввести последовательность S и вывести второй максимум этой последовательности, т. е. элемент a∈S : ∃ b∈S : b>a и a⩾c ∀c∈S, c≠b. Если второго максимума нет, вывести NO. Пользоваться функциями наподобие max() или sorted() нельзя.
3,4,5,6,7
6
EJudge: No3Ones 'Без трёх единиц'
Без трех единиц (MCCME). Введите натуральное N>2. Определите количество последовательностей из нулей и единиц длины N (длина - это общее количество нулей и единиц), в которых никакие три единицы не стоят рядом.
4
13