Это заметка будет для начинающих, которые только знакомятся с программированием, информатикой и с языком Python, в частности. Вчера мы с учеником изучали циклы и некоторые операторы, которые дают возможность управлять циклами. В этой небольшой статье я покажу несколько примеров. При этом от совсем простых абстракций постараемся углубиться в более полезные вещи с практической точки зрения.
Циклы в Python позволяют выполнять одно действие несколько раз подряд. С их помощью можно автоматизировать задачи, парой строк кода выполнять несколько действий и генерировать данные.
В Python существует два основных типа циклов: for и while.
Цикл WHILE
Цикл while ( условие) {инструкции} является самым универсальным циклом. Но и довольно медленным в Python. Цикл выполняет внутреннее тело (набор инструкций до тех пор, пока условие в начале цикла истинно. Условие проверяется на каждой итерации.
Классическая ошибка начинающих изучать программирование в том, что они забывают изменять переменную, что приводит к бесконечному циклу while.
Цикл while в Python выполняется, пока условие истинно. Синтаксис цикла while выглядит так:
while условие:
# код для выполнения
Цикл FOR
Еще один пример, когда мы пробегаем по перечисляемой структуре, например по строке. Здесь цикл for-in работает так, что переменная i последовательно принимает значение каждой буквы в строке.
Цикл for используется для итерации по последовательности (например, списки, кортежи, строки). Синтаксис цикла for выглядит следующим образом:
for переменная in последовательность: # код для выполнения
Оператор CONTINUE
Оператор continue в Python позволяет «перепрыгнуть» оставшиеся выражения в цикле и перейти к следующей итерации. Другими словами, он пропускает условие и продолжает итерацию цикла.
Рассмотрим пример, когда мы хотим пропустить какую-то единицу перечисляемой структуры. Например хотим пропустить одну букву (символ) в строке:
Где еще в нам может понадобиться пропуск итерации? Например, нам нужно посчитать (вывести таблицу значений) выражение x/k , где k пробегает значения от -10 до +10. Мы начинаем кодить цикл, тестируем его на значения 1 < k < 10, у нас всё отлично, затем расширяем диапазон -10 < k < 10 и хоба...
Мы получаем страшное красное сообщение:
Чтобы это исправить, мы можем ловко обойти ошибку, возникающую при делении на ноль (не все языки программирования оперируют сущностью бесконечности = infinity = inf = ∞ ), мы можем использовать оператор continue следующим способом:
Оператор BREAK
Оператор break в Python позволяет досрочно прервать цикл. Он используется, если в цикле образуются условия, которые несовместимы с его дальнейшим выполнением. Или же, когда мы уже что-то нашли и нам не нужно продолжать цикл до конца. К примеру, мы нашли, что определенный элемент есть в рассматриваемой коллекции (список, кортеж, словарь, строка).
При выполнении оператора break программа немедленно выходит из цикла, и управление переходит к следующей строке кода после цикла. Если используется несколько вложенных циклов, break прерывает внутренний цикл и продолжает выполнять выражения, следующие за блоком.
Иногда нам нужно не прервать текущую итерацию и продолжить со следующей, как это делает оператор continue, а полностью прервать выполнение цикла и выйти в точку, которая находится сразу после цикла. Тогда мы используем оператор break, который полностью прерывает цикл при своём вызове. Вызов можно обернуть в определенное [нужное нам по логике алгоритма] условие выхода.
Решим такую практическую задачу:
Найти индекс (номер) определенной буквы в строке во время первого вхождения этой буквы.
Решение:
Рассмотрим что представляет из себя строка и что мы должны получить, если мы хотим, к примеру, найти индекс буквы «t» :
А что если мы хотим обернуть наш алгоритм в функцию и вызывать её с разными нужными нам параметрами?
Задача: Написать функцию, которая выводит на экран индекс нужного символа в передаваемой строке. В случае, если символ не найден, то выводит -1. Входные параметры: строка и символ.
Выходные параметры: номер символа в строке, -1 если не нашлось.
Решение:
Более сложные статьи:
Понравилась статья? Поставьте лайк, подпишитесь на канал, напишите комментарий! Вам не сложно, а мне очень приятно :)
Если Вам нужен репетитор по физике, математике или информатике/программированию, Вы можете написать мне или в мою группу Репетитор IT mentor в VK
Библиотека с книгами для физиков, математиков и программистов Репетитор IT mentor в VK
Репетитор IT mentor в telegram