Обсъдихме основните типове данни, напредналите типове данни и условните оператори в Python в нашите предишни блогове. В този блог ще разгледаме цикли. Ако сте нови в Python, моля, започнете от първия блог, за да получите по-добро разбиране на тази тема.
Цикли в Python – съдържание:
- Цикли в Python
- Цикъл for в Python
- Цикли for в списък
- Итерация на множество с помощта на цикъл for
- Итерация на кортеж с помощта на цикъл for
- Вложени цикли в Python
- Цикли while в Python
Цикли в Python
Циклите се използват, когато е необходимо да се извърши задача повече от веднъж. Например, печатане на числа от 1 до 100 или по-добър пример би бил да се сумират всички елементи в списък или масив. Понякога е необходимо да се напишат повече от 1 цикъл или цикъл в цикъл. В Python написването на тези цикли е много просто и дори синтаксисът е лесен за разбиране. Както видяхме, в Python не е необходимо първо да декларираме променлива, преди да я използваме. Основното циклене започва с цикъл for. Нека разберем цикъла “for”.
Цикъл for в Python
В цикъл for имаме три неща, които трябва да бъдат споменати. Първото е началната стойност на променливата, върху която трябва да се извърши итерацията, спирането на условието и последното е с колко стъпки искате да увеличите или намалите итератора.
Нека видим синтаксиса на цикъл “for”:
# Цикъл For for var in range(10): print(var) for var in range(0,10,1): print(var)
В горния код можем да видим, че цикли for дават същия резултат. Синтаксисът в края, където предоставихме функцията range, има три аргумента, които обсъдихме в предишния параграф. В горния пример диапазонът е 0,10,1, където 0 е началната стойност на итератора, 10 е крайната стойност, но диапазонът всъщност итерара до 10-1, което е 9, а 1 е увеличението на итератора всеки път, когато цикълът се изпълнява.
Нека стартираме горната програма
Изход: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
Както можем да видим от илюстрацията на изхода, печата числата от 0 до 9.
Цикли for в списък
В списък имаме колекция от елементи и по-долу е илюстрацията как да използваме цикли for, за да итерараме през списък.
X=[1,2,3,4,5,6] for i in X: print(i)
Изход: Това ще отпечата всички елементи в списъка. 1,2,3,4,5,6
За да включим индекса също при печатане, кодът е илюстриран по-долу.
X=[1,2,3,4,5,6] for i in range(len(X)): print(i,X[i]) [/code>Това ще отпечата както индекса, така и стойността в списъка.
Има лесен начин да получите индекса и стойността, използвайки функцията enumerate. Използването на функцията enumerate е илюстрирано по-долу.
X=[1,2,3,4,5,6] for i,value in enumerate(X): print(i,value) [/code> Изход: 0,1 1,2 2,3 3,4 4,5 5,6 [/code>Итерация на множество с помощта на цикъл for
Итерацията на множество е като итерацията на списък с помощта на цикъл for. Пример е илюстриран по-долу.
X={1,2,3,4,5,6} for i,value in enumerate(X): print(i,value) [/code> Изход: 0,1 1,2 2,3 3,4 4,5 5,6 [/code>Итерация на кортеж с помощта на цикъл for
Итерацията на кортеж е като итерацията на списък с помощта на цикъл for. Пример е илюстриран по-долу.
X=(1,2,3,4,5,6) for i,value in enumerate(X): print(i,value) [/code> Изход: 0,1 1,2 2,3 3,4 4,5 5,6 [/code>Итерация на речник с помощта на цикъл for
Итерацията на речник е различна от другите типове данни, тъй като речникът съдържа двойки ключ-стойност. Следователно, за да получим само ключовете, използваме dictionaryname.keys(), а за стойностите използваме dictionaryname.values(). Пример е илюстриран по-долу.
X={“1”:1,”2”:2} for key in X.keys(): print(key) for value in X.values(): print(value) for key,value in X.items(): print(key,value) [/code> Изход: 1 2 1 2 1,1 2,2 [/code>Вложени цикли в Python
Вложените цикли са полезни при изграждането на брутално решение на даден проблем. Те увеличават времевата сложност на програмата и намаляват четимостта.
a = [1, 2] b = [10, 13] # получаване на числа, чийто продукт е 13 for i in a: for j in b: if i*j == 13: print(i, j) [/code>В горния кодов блок определихме 2 списъка и всеки списък има колекция от числа. Основната цел беше да намерим какви числа ще произведат 13 от двата списъка и също да отпечатаме тези числа. За тази цел трябваше да итерараме през 2 списъка, следователно бяха използвани 2 цикъла for.
Алтернативен начин:
Има функция в itertools, която се нарича product. Това помага да се запази вложените цикли for, ако присъстват в програмата, четими. Примерът е илюстриран по-долу.
от itertools import product
a = [1, 2]
b = [10, 13]
# получаване на числа, чийто продукт е 13
for i, j in product(a, b):
if(i*j == 13): print(i, j) [/code>Цикли while в Python
Досега само отпечатвахме изхода, но никога не даваме вход на нашата програма. В Python input() се използва за даване на вход на програмата. Примерът е илюстриран по-долу. Цикълът while се използва, когато искате да изпълните програма, ако условието е изпълнено. Примерите за цикли while са илюстрирани по-долу.
Печатане на 0-9 с помощта на цикъл while:
i = 0
while(i < 10): print(i) i += 1 [/code>Както можете да видите, синтаксисът е while, последван от условие, а вътре в цикъла увеличаваме итератора в съответствие с желаното число.
Изход: 0 1 2 3 4 5 6 7 8 9 [/code>
В този блог разгледахме някои основи на цикличните оператори в python, следващите теми за функциите ще бъдат разгледани в следващия блог. Въпросът, който трябва да бъде решен, е даден по-долу.

Може да ви хареса и нашият Курс по JavaScript от начинаещ до напреднал.
Robert Whitney
Експерт по JavaScript и инструктор, който обучава ИТ отдели. Основната му цел е да повиши продуктивността на екипа, като учи другите как да си сътрудничат ефективно при програмирането.
Python Course From Beginner to Advanced in 11 blog posts:
- Питон кортежи, списъци, множества и речници. Част 3 от курса по Питон от начинаещ до напреднал в 11 публикации в блога
- Функции в Python. Част 7 от курса по Python за начинаещи до напреднали в 11 публикации в блога
- Въведение в курса по Python. Част 1 Курс по Python от начинаещ до напреднал в 11 блог поста
- Променливи и типове данни в Python. Част 2 от курса по Python за начинаещи до напреднали в 11 блог поста
- Питон множества и речници. Част 4 от курса по Питон за начинаещи до напреднали в 11 блог поста
- Питон класове и обекти. Част 9 Питон курс от начинаещ до напреднал в 11 блог поста
- Файлове в Python. Част 10 от курса по Python от начинаещ до напреднал в 11 публикации в блог.
- Цикли в Python. Част 6 от курса по Python от начинаещ до напреднал в 11 блог поста
- Разширени функции в Python. Част 8 от курса по Python от начинаещ до напреднал в 11 блог публикации