Основы питон. #инструкция объявляющая переменную var и присваивающая ей значение равное 5
Скачать 262.43 Kb.
|
ЦиклыЦиклы – это специальные выражения, которые позволяют выполнять часть кода несколько раз, если оно того требует. Циклы очень полезны в программировании, поскольку это позволяет не прописывать вручную одну и ту же операцию несколько раз. Допустим нам надо вывести на экран 13 чисел от 1 до 13, как бы это выглядело без циклов: print(1) print(2) print(3) print(4) print(5) print(6) print(7) print(8) print(9) print(10) print(11) print(12) print(13) Согласитесь, утомительно. Давайте посмотрим далее что можно с этим сделать, применив циклы. В языке Python есть несколько видов циклических выражений. Цикл whileСамый простой вид циклов, выполняет инструкцию в блоке до тех пор, пока условие не станет ложным. # создаем переменную, равную 1 var = 1 # прописываем цикл с условием - выполнять до тех пор, пока переменная # меньше или равна 13 while var <= 13: # выводим значение переменной print(var) # увеличиваем переменную на 1 var += 1 Попробуйте выполнить пример выше и посмотрите что получится, можете не переписывать комментарии. Как видно из примера, у нас появляются вложенные инструкции, а значит их надо отделять пробелами. Памятка Необходимо всегда помнить, что при использовании цикла while, нужно следить за тем, чтобы было прописано условие выхода из цикла. Если бы в примере выше мы не увеличивали переменную var на 1, тогда цикл бы стал бесконечным, и программа бы выполнялось до тех пор, пока не закончится память компьютера. Давайте представим цикл while в виде блок схемы для наглядности: Нажмите для увеличения изображения В нашем случае мы реализуем цикл while с помощью комбинации условие + действие. Действие будет повторяться до тех пор, пока не выполнится условие. Из схемы видно, что если мы уберем блок действия var=var+1 , то наше условие не будет выполнено никогда и цикл будет бесконечным. Цикл forЦикл for менее универсальный, но работает быстрее, чем цикл while. Он способен проходить по любому итерируемому объекту, будь то списки, словари, кортежи, строки и не требует ручного увеличения счетчика итераций: for i in [1, 2, 3, 4, 5 ,6 ,7 ,8 ,9 , 10, 11, 12, 13]: print(i) В примере выше написана программа с использованием цикла for. Мы указываем, что наша вложенная инструкция print(i) должна выполняться для каждого элемента из массива [1, 2, 3, 4, 5 ,6 ,7 ,8 ,9 , 10, 11, 12, 13]. То есть данный цикл описывает конструкцию: i =1 print(i) i =2 print(i) i =3 print(i) ... i = 13 print(i) В нашем примере все равно отсутствует элегантность, присущая языку Python. Давайте попробуем что-нибудь сделать с массивом из 13 чисел. Что если нам понадобится выводить 100 или 100000 чисел? Для этих целей применим функцию range(), которая поможет нам автоматически сгенерировать последовательность чисел. >>> var = range(1, 14) >>> print(var) range(1, 14) >>> print(var[0]) 1 >>> print(var[1]) 2 >>> print(var[12]) 13 >>> print(var[14]) Traceback (most recent call last): File " ", line 1, in print(var[14]) IndexError: range object index out of range Мы присвоили переменной значение выражения range(1,14), после того, как мы решили вывести содержимое переменной var, обнаружилось, что в ней заложено это выражение - range(1, 14). Как говорилось ранее, range это особый тип, который содержит в себе последовательность данных. Чтобы это показать, выполним команду print(var[0]), которая выводит содержимое переменной, стоящей в 0 ячейке памяти. Ячейки памяти берут отсчет с 0, поэтому на 12 позиции будет храниться число 13, как видно из примера. Тем самым мы видим, что переменная var содержит в себе последовательность чисел от 1 до 13. Но как быть с 14 позицией, ведь в команде range() второй параметр у нас равен 14? Особенность range() состоит в том, что последнее число последовательности не включается в нее, то есть мы говорим, что нам надо сформировать последовательность чисел от 1 до 14, не включая 14. Функция range() работает так, потому что чаще всего используется для работы с индексами, отсчет которых начинается с 0. Вернемся к циклу for. Теперь мы можем написать нашу программу максимально компактно: for i in range(1,14): print(i) В принципе, цикл for можно также изображать на блок-схемах, как и цикл while. Важно помнить, что увеличение счетчика и его начальное значение заложено внутри оператора for и его не надо прописывать отдельно. Оператор continueОператор continue позволяет начать следующий проход цикла, минуя оставшиеся инструкции: for var in 'Python': if var == 'h': continue print(var) На примере выше мы перебираем последовательность символов и когда наша переменная хранит в себе символ 'h', мы используем оператор continue, чтобы пропустить дальнейшую инструкцию print(var). Нажмите, чтобы увеличить изображение На блок-схеме выше представлена ситуация, когда используется оператор continue. В текстовой сноске примерно описан вариант реализации цикла for. Основное, на что стоит обратить внимание, это красная линия, которая переводит на блок for без каких-либо действий. Оператор breakОператор break досрочно прерывает цикл. Повторите пример ниже и посмотрите, что получится. for var in 'Python': if var == 'h': break print(var) Нажмите, чтобы увеличить изображение В данном случае оператор break ведет нас сразу к окончанию работы цикла. При этом получается, что выход совершается экстренный, т.к. мы не переберем все элементы эталона, о чем говорит пунктирная стрелка. Оператор elseОператор else проверяет цикл на экстренный выход (break). Если экстренного выхода не было, т.е. оператор break не был выполнен, блок инструкций вложенный в оператор else - выполняется. for var in 'Python': if var == 'a': break else: print('Символа a нет в слове Python') Операторы continue, break и else работают с циклами for и while. |