Циклы. Циклов, которые способны повторять определенный код несколько раз. Чтобы понять принцип работы оператора цикла
Скачать 111.31 Kb.
|
Циклы Выполнение программ, написанных на любом языке программирования, по умолчанию является последовательным. Иногда нам может понадобиться изменить выполнение программы. Выполнение определенного кода может потребоваться повторить несколько раз. Для этого в языках программирования предусмотрены различные типы циклов, которые способны повторять определенный код несколько раз. Чтобы понять принцип работы оператора цикла, рассмотрим следующую схему. Для чего нужны циклы в python? Циклы упрощают сложные задачи до простых. Он позволяет нам изменить поток программы таким образом, что вместо того, чтобы писать один и тот же код снова и снова, мы можем повторять его конечное число раз. Например, если нам нужно вывести первые 10 натуральных чисел, то вместо того, чтобы использовать оператор print 10 раз, мы можем вывести их внутри цикла, который выполняется до 10 итераций. Преимущества циклов В Python преимущества циклов, как и в других язвках программирования, заключаются в следующем: Это обеспечивает возможность повторного использования кода. Используя циклы, нам не нужно писать один и тот же код снова и снова. С помощью циклов мы можем перебирать элементы структур данных (массивов или связанных списков). В Python существуют следующие операторы циклов.
Цикл for в Python Цикл for в Python используется для многократного повторения операторов или части программы. Он часто используется для обхода структур данных, таких как список, кортеж или словарь. Синтаксис цикла for в python приведен ниже. for iterating_var in sequence: statement(s) Цикл For с использованием последовательности Пример 1: Итерация строки с помощью цикла for str = "Python" for i in str: print(i) Вывод: P y t h o n Пример 2: Программа для печати таблицы заданного числа. list = [1,2,3,4,5,6,7,8,9,10] n = 5 for i in list: c = n*i print(c) Вывод: 5 10 15 20 25 30 35 40 45 50s Пример 3: Программа для печати суммы заданного списка. list = [10,30,23,43,65,12] sum = 0 for i in list: sum = sum+i print("The sum is:",sum) Вывод: The sum is: 183 Цикл For с использованием функции range() Функция range() Функция range() используется для генерации последовательности чисел. Если мы передадим range(10), она сгенерирует числа от 0 до 9. Синтаксис функции range() приведен ниже. range(start,stop,step size) Start означает начало итерации. Stop означает, что цикл будет повторяться до stop-1. range(1,5) будет генерировать числа от 1 до 4 итераций. Это необязательный параметр. Размер шага используется для пропуска определенных чисел в итерации. Его использование необязательно. По умолчанию размер шага равен 1. Это необязательно. Рассмотрим следующие примеры: Пример 1: Программа для печати чисел по порядку. for i in range(10): print(i,end = ' ') Вывод: 0 1 2 3 4 5 6 7 8 9 Пример 2: Программа для печати таблицы заданного числа. n = int(input("Enter the number ")) for i in range(1,11): c = n*i print(n,"*",i,"=",c) Вывод: Enter the number 10 10 * 1 = 10 10 * 2 = 20 10 * 3 = 30 10 * 4 = 40 10 * 5 = 50 10 * 6 = 60 10 * 7 = 70 10 * 8 = 80 10 * 9 = 90 10 * 10 = 100 Пример 3: Программа для печати четного числа с использованием размера шага в range(). n = int(input("Enter the number ")) for i in range(2,n,2): print(i) Вывод: Enter the number 20 2 4 6 8 10 12 14 16 18 Мы также можем использовать функцию range() с последовательностью чисел. Функция len() сочетается с функцией range(), которая выполняет итерацию по последовательности с использованием индексации. Рассмотрим следующий пример. list = ['Peter','Joseph','Ricky','Devansh'] for i in range(len(list)): print("Hello",list[i]) Вывод: Hello Peter Hello Joseph Hello Ricky Hello Devansh Вложенный цикл for в python Python позволяет нам вложить любое количество циклов for внутрь цикла for. Внутренний цикл выполняется n раз за каждую итерацию внешнего цикла. Синтаксис приведен ниже. for iterating_var1 in sequence: #outer loop for iterating_var2 in sequence: #inner loop #block of statements #Other statements Пример 1: Вложенныйцикл for # User input for number of rows rows = int(input("Enter the rows:")) # Outer loop will print number of rows for i in range(0,rows+1): # Inner loop will print number of Astrisk for j in range(i): print("*",end = '') print() Вывод: Enter the rows:5 * ** *** **** ***** Пример 2: Программа для печати пирамиды чисел. rows = int(input("Enter the rows")) for i in range(0,rows+1): for j in range(i): print(i,end = '') print() Вывод: 1 22 333 4444 55555 Использование оператора else в цикле for В отличие от других языков, таких как C, C++ или Java, Python позволяет нам использовать оператор else с циклом for, который может быть выполнен только тогда, когда все итерации исчерпаны. Здесь мы должны заметить, что если цикл содержит какой-либо оператор break, то оператор else не будет выполнен. Пример 1 for i in range(0,5): print(i) else: print("for loop completely exhausted, since there is no break.") Вывод: 0 1 2 3 4 for loop completely exhausted, since there is no break. Цикл for полностью исчерпал себя, так как нет прерывания. Пример 2 for i in range(0,5): print(i) break; else:print("for loop is exhausted"); print("The loop is broken due to break statement...came out of the loop") В приведенном выше примере цикл прерван из-за оператора break, поэтому оператор else не будет выполнен. Будет выполнен оператор, находящийся непосредственно рядом с блоком else. Вывод: 0 Цикл был прерван, благодаря оператору break. Цикл while в Python Цикл while позволяет выполнять часть кода до тех пор, пока заданное условие не станет ложным. Он также известен как цикл с предварительной проверкой условия. Его можно рассматривать как повторяющийся оператор if. Когда мы не знаем количество итераций, цикл while является наиболее эффективным. Синтаксис приведен ниже. while expression: statements Здесь утверждения могут быть одним утверждением или группой утверждений. Выражение должно быть любым допустимым выражением Python, приводящим к true или false. Истиной является любое ненулевое значение, а ложью - 0. Операторы управления циклом Мы можем изменить обычную последовательность выполнения цикла while с помощью оператора управления циклом. Когда выполнение цикла while завершается, все автоматические объекты, определенные в этой области видимости, уничтожаются. Python предлагает следующие управляющие операторы для использования в цикле while. 1. Оператор continue - Когда встречается оператор continue, управление переходит в начало цикла. Давайте разберем следующий пример. # prints all letters except 'a' and 't' i = 0 str1 = 'javatpoint' while i < len(str1): if str1[i] == 'a' or str1[i] == 't': i += 1 continue print('Current Letter :', a[i]) i += 1 Вывод: Current Letter : j Current Letter : v Current Letter : p Current Letter : o Current Letter : i Current Letter : n 2. Оператор break - Когда встречается оператор break, он выводит управление из цикла. Пример: # The control transfer is transfered # when break statement soon it sees t i = 0 str1 = 'javatpoint' while i < len(str1): if str1[i] == 't': i += 1 break print('Current Letter :', str1[i]) i += 1 Вывод: Current Letter : j Current Letter : a Current Letter : v Current Letter : a 3. Оператор pass - Оператор pass используется для объявления пустого цикла. Он также используется для определения пустого класса, функции и оператора управления. Давайте разберем следующий пример. # An empty loop str1 = 'javatpoint' i = 0 while i < len(str1): i += 1 pass print('Value of i :', i) Вывод Value of i : 10 Пример 1: Программа для печати от 1 до 10 с использованием цикла while i=1 #The while loop will iterate until condition becomes false. While(i<=10): print(i) i=i+1 Вывод 1 2 3 4 5 6 7 8 9 10 Пример 2: Программа для печати таблицы заданных чисел. i=1 number=0 b=9 number = int(input("Enter the number:")) while i<=10: print("%d X %d = %d \n"%(number,i,number*i)) i = i+1 Вывод Enter the number:10 10 X 1 = 10 10 X 2 = 20 10 X 3 = 30 10 X 4 = 40 10 X 5 = 50 10 X 6 = 60 10 X 7 = 70 10 X 8 = 80 10 X 9 = 90 10 X 10 = 100 Бесконечный цикл while Если условие, заданное в цикле while, никогда не станет ложным, то цикл while никогда не завершится, и он превратится в бесконечный цикл while. Любое ненулевое значение в цикле while указывает на всегда истинное состояние, в то время как ноль указывает на всегда ложное состояние. Такой подход полезен, если мы хотим, чтобы наша программа непрерывно выполнялась в цикле без каких-либо помех. Пример 1 while (1): print("Hi! we are inside the infinite while loop" Вывод Hi! we are inside the infinite while loop Hi! we are inside the infinite while loop Пример 2 var = 1 while(var != 2): i = int(input("Enter the number:")) print("Entered value is %d"%(i)) Вывод Enter the number:10 Entered value is 10 Enter the number:10 Entered value is 10 Enter the number:10 Entered value is 10 Infinite time Использование else в цикле while Python позволяет нам также использовать оператор else с циклом while. Блок else выполняется, когда условие, заданное в операторе while, становится ложным. Как и в случае с циклом for, если цикл while прервать с помощью оператора break, то блок else не будет выполнен, а будет выполнен оператор, присутствующий после блока else. Оператор else необязателен для использования с циклом while. Рассмотрим следующий пример. i=1 while(i<=5): print(i) i=i+1 else: print("The while loop exhausted") i=1 while(i<=5): print(i) i=i+1 if(i==3): break else: print("The while loop exhausted") Вывод 1 2 В приведенном выше коде, когда встречается оператор break, цикл while останавливает свое выполнение и пропускает оператор else. Программа для печати чисел Фибоначчи до заданного предела terms = int(input("Enter the terms ")) # first two intial terms a = 0 b = 1 count = 0 # check if the number of terms is Zero or negative if (terms <= 0): print("Please enter a valid integer") elif (terms == 1): print("Fibonacci sequence upto",limit,":") print(a) else: print("Fibonacci sequence:") while (count < terms) : print(a, end = ' ') c = a + b # updateing values a = b b = c count += 1 Enter the terms 10 Fibonacci sequence: 0 1 1 2 3 5 8 13 21 34 Оператор прерывания в Python Break - это ключевое слово в python, которое используется для вывода управления программой из цикла. Оператор break разрывает циклы по одному, то есть в случае вложенных циклов он сначала разрывает внутренний цикл, а затем переходит к внешним циклам. Другими словами, можно сказать, что break используется для прерывания текущего выполнения программы, и управление переходит на следующую строку после цикла. Прерывание обычно используется в тех случаях, когда нам нужно прервать цикл при заданном условии. Синтаксис прерывания приведен ниже. #оператор цикла break; Пример: list =[1,2,3,4] count = 1; for i in list: if i == 4: print("item matched") count = count + 1; break print("found at",count,"location"); Вывод: item matched found at 2 location Пример: str = "python" for i in str: if i == 'o': break print(i); Вывод: p y t h Пример: оператор break с циклом while i = 0; while 1: print(i," ",end=""), i=i+1; if i == 10: break; print("came out of while loop"); Вывод: 0 1 2 3 4 5 6 7 8 9 came out of while loop Пример n=2 while 1: i=1; while i<=10: print("%d X %d = %d\n"%(n,i,n*i)); i = i+1; choice = int(input("Do you want to continue printing the table, press 0 for no?")) if choice == 0: break; n=n+1 Вывод: 2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18 2 X 10 = 20 Do you want to continue printing the table, press 0 for no?1 3 X 1 = 3 3 X 2 = 6 3 X 3 = 9 3 X 4 = 12 3 X 5 = 15 3 X 6 = 18 3 X 7 = 21 3 X 8 = 24 3 X 9 = 27 3 X 10 = 30 Do you want to continue printing the table, press 0 for no?0 Оператор continue в Python Оператор continue в Python используется для возврата управления программой в начало цикла. Оператор continue пропускает оставшиеся строки кода внутри цикла и начинает следующую итерацию. В основном он используется для определенного условия внутри цикла, чтобы мы могли пропустить определенный код для конкретного условия. #loop statements continue #the code to be skipped Рассмотрим следующие примеры. Пример i = 0 while(i < 10): i = i+1 if(i == 5): continue print(i) Вывод: 1 2 3 4 6 7 8 9 10 Обратите внимание на вывод приведенного выше кода, значение 5 пропущено, потому что мы предоставили условие if с помощью оператора continue в цикле while. Когда оно совпадает с заданным условием, управление передается в начало цикла while, и он пропускает значение 5 из кода. Давайте посмотрим на другой пример: Пример str = "JavaTpoint" for i in str: if(i == 'T'): continue print(i) Вывод: J a v a p o i n t Оператор pass в python Оператор pass является нулевым оператором (null operation), поскольку при его выполнении ничего не происходит. Он используется в тех случаях, когда оператор синтаксически необходим, но мы не хотим использовать вместо него какой-либо исполняемый оператор. Например, он может быть использован при переопределении метода родительского класса в подклассе, но мы не хотим давать его конкретную реализацию в подклассе. Pass также используется в тех случаях, когда код будет записан где-то, но еще не записан в программном файле. Рассмотрим следующий пример. list = [1,2,3,4,5] flag = 0 for i in list: print("Current element:",i,end=" "); if i==3: pass print("\nWe are inside pass block\n"); flag = 1 if flag==1: print("\nCame out of pass\n"); flag=0 Вывод: Current element: 1 Current element: 2 Current element: 3 We are inside pass block Came out of pass Current element: 4 Current element: 5 Python цикл Do While В Python нет цикла do while. Но мы можем создать подобную программу. Цикл do while используется для проверки условия после выполнения оператора. Он похож на цикл while, но выполняется хотя бы один раз. Общий синтаксис цикла Do While (не отностится к python) do { //statement } while (condition); Пример: цикл do while в Python i = 1 while True: print(i) i = i + 1 if(i > 5): break Вывод: 1 2 3 4 5 |