Понимание того, как реализовать циклы в Python
Многие объекты в Python «итерируемы». Это означает, что можно перебирать каждый элемент объекта. Например, каждый элемент в списке или каждый символ в строке. Для итерации используется цикл for.
Цикл for
# Syntax for item in item_set: statement 1
Здесь мы создаем список, по которому мы должны выполнить итерацию. Затем мы используем ключевое слово «for» и упоминаем «i», которое является именем переменной и действует как заполнитель. Он принимает значение каждого элемента в объекте, который необходимо повторить.
>>>list1 = ['a','b','c'] >>> for i in list1: print(i) a b c
Обратите внимание, как переменная «i» изменена на «pizza», и она по-прежнему дает результат. Это так, потому что имя переменной может быть любым.
>>> list2 = [11,22,33] >>> for pizza in list2: print(pizza) 11 22 33
Теперь мы попробуем печатать только четные числа, реализовав как цикл, так и условные операторы.
>>> for i in list2: #check for even if i%2 == 0: #'%' gives remainder print(i) else: print(f"Odd number: {i}") Odd number: 11 22 Odd number: 33
Давайте попробуем получить сумму всех чисел в списке, используя цикл for.
>>> sum = 0 >>> for i in list2: sum = sum + i print(sum) 66
Использование цикла for в случае строк
>>> str1 = 'Python is fun' >>> for i in str1: print(i) P y t h o n i s f u n
Использование цикла for в случае кортежей
>>> tup1 = (1,2,3) >>> for _ in tup1: print(_) 1 2 3
Использование цикла for при распаковке кортежей. Это список с кортежами в нем.
>>> list3 = [(11,22), (33,44), (55,66)] # Gives the tuples inside the list >>> for i in list3: print(i) (11, 22) (33, 44) (55, 66) # Gives the individual items in the tuples inside the list >>> for (a,b) in list3: print(a) print(b) 11 22 33 44 55 66
Использование цикла for в случае словаря
>>> dict1 = {'a':1, 'b':2, 'c':3} >>> for i in dict1: print(i) a b c
Обратите внимание, что когда вы пытаетесь перебрать словарь, вы перебираете ключи. Чтобы перебрать элементы, сделайте следующее.
>>> for i in dict1.items(): print(i) ('a', 1) ('b', 2) ('c', 3) >>> for key,value in dict1.items(): print(value) 1 2 3 >>> for i in dict1.values(): print(i) 1 2 3
Цикл while
# Syntax while <conndition>: statement 1 else: statement 2
Циклы while будут продолжать выполнять блок кода, пока какое-то условие остается верным. Например, при работающем двигателе машина должна работать.
>>> x = 5 >>> while x < 10: print("x is:", x) x = x +1 x is: 5 x is: 6 x is: 7 x is: 8 x is: 9
Если мы упоминаем условие, которое никогда не выполняется, цикл будет выполняться вечно. Он перейдет в бесконечный цикл.
Теперь перейдем к некоторым важным ключевым словам для использования с циклами. Мы можем использовать операторы break, continue и pass в циклах, чтобы добавить дополнительную функциональность.
Ключевое слово break
Вырывается из текущего ближайшего охватывающего цикла
>>> str2 = "Python language" >>> for i in str2: if i == 'a': break print(i) P y t h o n l
Здесь, как только встречается буква «а», текущий закрывающий цикл завершается, и, следовательно, после «l» печать не производится.
Ключевое слово continue
Переход к вершине ближайшей охватывающей петли
>>> str2 = "Python language" >>> for i in str2: if i == 'a': continue print(i) P y t h o n l n g u g e
Здесь мы хотели пропустить букву «а» в строке. Итак, мы использовали ключевое слово «продолжить». Каждый раз, когда происходило «а», он возвращался к своему закрытому охватывающему циклу, который является циклом for.
Ключевое слово pass
Вообще ничего не делает
>>> list4 = [1,2,3] >>> for i in list4: #statement File "<ipython-input-25-6fe39b558d44>", line 4 #statement ^ SyntaxError: unexpected EOF while parsing
Ошибка возникла из-за того, что python ожидает, что вы упомянете оператор, поскольку отступ является его важной частью. Поэтому вместо того, чтобы оставлять поле пустым, можно избавиться от этой ошибки с помощью ключевого слова «пройти».
>>> for i in list4: pass
Обратитесь к записной книжке здесь.
Книги для начинающих для изучения Python:
Книги продвинутого уровня для изучения Python:
Свяжитесь со мной: LinkedIn
Посмотрите другие мои работы: GitHub