Основные инструкции
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.