Операторы циклов Fo
Скачать 87.87 Kb.
|
ALIKHAN BOKEIKHAN UNIVERSITY СРО на тему: Операторы циклов For Выполнил(a) Акежан А.М ВТ-202С Проверил(а) Назарова В.В Семей 2022г. План Введение Определение Примеры применение цикла Интересные факты Введение Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода). Вы ежедневно сталкиваетесь с циклами в своей повседневной жизни. Это повторяющиеся однотипные события. К примеру, походы в школу. Весь цикл – это повторение походов в школу, один поход – это итерация. У итерации есть «тело»: проснуться, умыться, одеться, почистить зубы, позавтракать, собрать портфель, дойти до школы и т. д. Итерация может прерваться – ученик почувствовал себя плохо и ушёл с уроков. Весь цикл тоже может быть прерван: ученик перешёл на домашнее обучение. В цикл могут быть вложены другие циклы: внутри итерации «поход в школу» есть цикл «посещение уроков». Основная часть В быту нам часто приходится выполнять повторяющиеся действия. Например, чтобы повесить постиранное белье, нужно доставать и развешивать каждую вещь. В программировании такие повторяющиеся задачи упрощают. Чтобы писать один и тот же код снова и снова, используют циклы. Цикл for, также называемый циклом с параметром, в языке Питон богат возможностями. В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком, кортежем, строкой или диапазоном. Блок схема оператора for: Простые циклы for: >>> for word in ["You", "are", "awesome!"]: ... print(word) ... You are awesome! Цикл перебирает все слова в списке и печатает их. То есть на каждом шаге цикла переменной word присваивается элемент списка, а затем выполняется кодовый блок. Поскольку список — это упорядоченная последовательность элементов, цикл проходит по ним в том же порядке. i = 1 for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet': print('#', i, ' color of rainbow is ', color, sep = '') i += 1 #1 color of rainbow is red #2 color of rainbow is orange #3 color of rainbow is yellow #4 color of rainbow is green #5 color of rainbow is cyan #6 color of rainbow is blue #7 color of rainbow is violet В этом примере переменная color последовательно принимает значения 'red', 'orange' и т.д. В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color, а также номер итерации цикла число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла. Функция rangeКак правило, циклы for используются либо для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного. Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функцией range: for i in range(4): # равносильно инструкции for i in 0, 1, 2, 3: # здесь можно выполнять циклические действия print(i) print(i ** 2) # цикл закончился, поскольку закончился блок с отступом print('Конец цикла') 0 0 1 1 2 4 3 9 Конец цикла Функция range может также принимать не один, а два параметра. Вызов range(a, b) означает, что индексная переменная будеть принимать значения от a до b - 1, то есть первый параметр функции range, вызываемой с двумя параметрами, задает начальное значение индексной переменной, а второй параметр — первое значение, которое индексная переменная принимать не будет. Если же a≥b, то цикл не будет выполнен ни разу. Например, для того, чтобы просуммировать значения чисел от 1 до n можно воспользоваться следующей программой: sum = 0 n = 5 for i in range(1, n + 1): sum += i print(sum) 15 В этом примере переменная i принимает значения 1, 2, ..., n, и значение переменной sum последовательно увеличивается на указанные значения. Наконец, чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию range с тремя параметрами. Первый параметр задает начальное значение индексной переменной, второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!), а третий параметр — величину изменения индексной переменной. Например, сделать цикл по всем нечетным числам от 1 до 99 можно при помощи функции range(1, 100, 2), а сделать цикл по всем числам от 100 до 1 можно при помощи range(100, 0, -1). Более формально, цикл for i in range(a, b, d) при d > 0 задает значения индексной переменной i = a, i = a + d, i = a + 2 * d и так для всех значений, для которых i < b. Если же d < 0, то переменная цикла принимает все значения i > b. Цикл for с блоком elseВ цикле for может быть дополнительный блок else. Блок else выполняется, если элементы последовательности закончили Для остановки цикла for используется ключевое слово break. В этом случае выполнение цикла останавливается. Следовательно, блок else выполняется только в том случае, если выполнение цикла не было прервано оператором break. Наглядный пример digits = [0, 1, 5] for i in digits: print(i) else: print("Элементов в списке не осталось.") 0 1 5 Элементов в списке не осталось. В этом примере цикл for печатает элементы списка до тех пор, пока он не закончится. После завершения цикла выполняется блок else, который печатает сообщение Элементов в списке не осталось. Оператор for...else можно использовать так: блок else выполнится только в том случае, если не выполнится оператор break. # Программа выводит на экран оценку студента student_name = 'Акежан' marks = {'Дияз': 90, 'Диас': 55, 'Валера': 77} for student in marks: if student == student_name: print(marks[student]) break else: print('Студент не найден.') Выводим все простые числа в интервалеlower = 900 upper = 1000 print("Диапазон чисел между", lower, "и", upper) for num in range(lower, upper + 1): if num > 1: for i in range(2, num): if (num % i) == 0: break else: print(num) Диапазон чисел между 900 и 1000 907 911 919 929 937 941 947 953 967 971 977 983 991 997 Python таблица умноженияnum = int(input("Display multiplication table of? ")) for i in range(1, 11): print(num, 'x', i, '=', num*i) Display multiplication table of? 5 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 Как видите, программа в несколько строчек, благодаря циклам способна вывести всю таблицу умножения. В этой программе, мы используем цикл for, вместе с функцией range(). Python факториал числаФакториал числа — это произведение всех целых чисел от 1 до искомого числа. К примере, факториал числа 6 равен 1*2*3*4*5*6 = 720. num = int(input("Введи число: ")) factorial = 1 if num < 0: print("Для отрицательных чисел факториал не определен") elif num == 0: print("Факториал 0 равен 1") else: for i in range(1,num + 1): factorial = factorial*i print("Факториал",num,"равен",factorial) Для безошибочной работы, мы проверяем является ли число нулем, или является ли он отрицательным. Если число положительное, то запускаем цикл for и функцию range() для вычисления факториала числа. Как избежать вложенных циклов с помощью функции ProductВложенные циклы — это настоящая головная боль. Они могут снизить читаемость кода и усложнить его понимание. Например, прерывание вложенных циклов обычно реализовать не так просто. Нам нужно знать, где прерван самый внутренний цикл, второй по порядку внутренний цикл, и так далее. К счастью, в Python существует потрясающая функция product из встроенного модуля itertools. Мы можем использовать её, чтобы не писать множество вложенных циклов Пример: list_a = [1, 2020, 70] list_b = [2, 4, 7, 2000] list_c = [3, 70, 7] for a, b, c in product(list_a, list_b, list_c): if a + b + c == 2077: print(a, b, c) Как мы видим, благодаря использованию функции product достаточно всего одного цикла. Так как функция product генерирует прямое произведение входящих итерируемых данных, она позволяет нам во многих случаях избежать вложенных циклов. Используем модуль Itertools для написания красивых цикловНа самом деле, функция product — это только вершина айсберга. Если вы изучите встроенный модуль Python itertools, то перед вами откроется целый новый мир. Этот набор инструментов содержит множество полезных методов, покрывающих наши потребности при работе с циклами. Создаём бесконечный циклПри помощи функции count: natural_num = itertools.count(1) for n in natural_num: print(n) Функцией cycle: many_yang = itertools.cycle('Yang') for y in many_yang: print(y) Через функцию repeat: many_yang = itertools.repeat('Yang') for y in many_yang: print(y) Комбинируем несколько итераторов в одинФункция chain() позволяет объединить несколько итераторов в один. from itertools import chain list_a = [1, 22] list_b = [7, 20] list_c = [3, 70] for i in chain(list_a, list_b, list_c): print(i) Выделяем соседние дублирующиеся элементыfrom itertools import groupby for key, group in groupby('YAaANNGGG'): print(key, list(group)) Интересные факты Цикл for — самый базовый инструмент потока управления большинства языков программирования. Например, простой цикл for на C выглядит так: int i; for (i=0;i { //do something } Не существует более изящного способа написания цикла for на C. В сложных случаях обычно приходится писать уродливые вложенные циклы или задавать множество вспомогательных переменных (например, как i в показанном выше коде). К счастью, в Python всё более удобно. В этом языке есть множество хитростей, позволяющих писать более изящные циклы, которые упрощают нашу жизнь. В Python вполне можно избежать вложенных циклов и вспомогательных переменных, и мы даже можем самостоятельно настраивать цикл for. Вывод Изучил цикл for узнал теорию и провел практику с использованием цикла for. Задачу создания циклов на Python можно решать очень гибко и изящно. Чтобы писать удобные и простые циклы, мы можем использовать встроенные инструменты или даже самостоятельно определять генераторы. Список использованных источников. https://pythonru.com/uroki/vvedenie-uroki-po-python-dlja-nachinajushhih https://pythonworld.ru/samouchitel-python https://pythontutor.ru/lessons/inout_and_arithmetic_operations/ https://pythonchik.ru/osnovy |