Основные инструкции
TODO: Написать введение
Условия/инструкции ветвления if/elif/else
Думаю что из название понятно что эта конструкция делает, если нам надо выполнить какие-то инструкции по условию мы ее используем. Общая форма записи:
Примеры
Минимальное условие:
Условие со второй веткой:
Множественное условие:
Циклы
Цикл с условием while/else
Позволяет нам исполнять инструкции в теле цикла, пока условие выполняется. Общая форма записи:
Пример бесконечного цикла:
Как мы видем в примере выше, в условии находится булевый литерал True, а значит условие будет всегда выполняться, и программа не выйдет из цикла. Этот код выведит все число до 6
Этот код делает тоже самое но он меньше
Этот цикл while попросить ввести число в терминале и напечает все число до него и само число
Этот цикл спросит ваш пол и относительно того что вы ввели выведит вам сообщение, но если ввести что то другое напишет предупреждение
Цикл попросит ввести ваш год рождения и скажет ваш возраст
Инструкции управления циклом continue/break
Для того чтобы управлять исполнением в цикле у нас есть две специальные конструкции:
continue- позволяет нам немедленно перейти к проверке условия и следующей итерации циклаbreak- прекращает исполнение цикла
Уже зная про управляющие инструкции давайте попробуем выйти из "бесконечного цикла"
Это пример бесконечного цикла с условием if при каждом цикле он проверяет число равно ли оно 20 если нет цикл продолжаеться если да brear останавливает цикл
В примере кода выше мы создали с вами переменную-счетчик - i, которую инкрементируем(увеличиваем на единицу) в конце каждой итерации цикла, а в самом цикле у нас есть условие: "Если счетчик больше 10000 -> выйди из цикла"
Ветка исполнения else
Но как показано выше, в цикле есть еще дополнительная ветка исполнения: else, инструкции из этой ветки будут исполнены если выход из цикла произошел по условию, Т.е если вышли мы без исполнения инструкции break.
Давайте еще один пример с исполнением кода в ветке else:
Обход последовательности for/else
Для обхода последовательности используется инструкция for/else. Ее общая форма записи:
Инструкции continue и break работают так же как и в while/else. Вторая ветка исполнения else будет исполнена, если мы вышли из цикла обычным способом(после обработки последнего элемента в последовательности):
В этом примере мы посчитаем сумму чисел в последовательности:
Инструкция pass
pass - ничего не делать
Мы не можем оставлять тело... допустим цикла, пустым в таком случае мы в теле можем написать инструкцию pass. Вот вам бесконечный цикл, который ничего не делает:
Генераторы списков(List comprehension)
Герераторы списков это более краткая форма того, что вы могли бы сделать через конструкцию for/in.
Перед нами стоит задача возвести каждое число списка в квадрат, давайте посмотрим как это можно было бы сделать через for/in:
И второй вариант уже использующий генераторы списков:
Давайте еще проигнорируем строки в исходной строке
Live example
Генераторы словарей(Dict comprehension)
Генераторы словарей очень похожи на генераторы списков, но как понятно из названия они генерируют словари
В остальном надеюсь вам понятен это синтаксис, если нет, то пишите и я дополню тему генераторов
Класс range
Используется для генерации последовательности чисел.
Аргументы конструктора (функции)
- start - начало последовательности (По умолчанию - 0)
- end - конец последовательности (Не включительно)
- step - с каким шагом генерировать последовательность
Обратите внимание
- Аргумент step может быть отрицательным, точно так же start может быть больше чем end.