Съдържание
Цikl за python i цикъл докато – твърдения софтуер език, а именно: итерационни оператори, некаING повторен код даден номер време.
Цикл За — синтаксис
Както вече беше обяснено, cinclude for в Python е итератор, базиран най на цикълидентичност. той ли е актове чрез елементи на кортеж и списък, речник ключове и друг итерируеми обекти.
Цикълът в Python започва с ключовата дума for, последвана от име на произволна променлива, която съхранява стойността на следващия обект в дадената последователност. Общият синтаксис за for…in в python изглежда така:
за в: else:
Компоненти „последователности“ са изброени едно след друго променлива на цикъла. Или по-скоро, променлива сочи към такъв елементи. За всеки от тях се извършва „действие“.
Прост for цикъл в Python с конкретен пример:
>>> езици = ["C", "C++", "Perl", "Python"] >>> за x в езици: ... print(x) ... C C++ Perl Python >>>
Блокът else е специаленth. Ако програмистыработа с Perl познаты с него, че за тези, които взаимодействат с C и C++ — това е иновация. Семантично го функции тидентично докато цикъл.
Изпълнява се само когато цикълът не е „спрян“ от командата break. Тоест, той се изпълнява само след като всички елементи са преминали през определената последователност.
Break оператор в python – break
Ако програмата има for цикъл необходимо прекъсвам- изявление за прекъсване, he завършиотиванамлява програма поток ще продължда бъде без активиране от друго.
По-често прекъсване на фрази в pythonую се с условни изрази.
edibles = ["chops", "dumplings","eggs","nuts"] за храна в edibles: if food == "dumplings": print("Не ям кнедли!") break print("Страхотно, вкусно " + храна) else: print("Добре, че нямаше кнедли!") print("Вечерята свърши.")
Ако изпълните този код, ще получите следния резултат:
Страхотни, вкусни котлети. Не ям кнедли! Вечерята свърши.
Премахваме „кнедли“ от съществуващия списък с данни и получаваме:
Отлични, вкусни котлети Отлични, вкусни яйца Отлични, вкусни ядки Добре, че нямаше кнедли! Вечерята свърши.
python skip оператор – продължи
Да кажем, че антипатията на потребителя към такива продукти не е толкова голяма, че да се откаже напълно от консумацията им. В резултат на това цикълът продължава с оператора continue
. Следният скрипт използва оператора continue
, за да продължите да обикаляте списъка на „контакт с кнедли“.
edibles = ["chops", "dumplings","eggs","nuts"] за храна в edibles: if food == "dumplings": print("Не ям кнедли!") continue print("Страхотно, вкусно " + храна) # това може да е код за наслаждаване на храна :-) else: print("Мразя кнедли!") print("Вечерята свърши.")
Долния ред:
Страхотни, вкусни котлети. Не ям кнедли! Страхотни, вкусни яйца Страхотни, вкусни ядки Мразя кнедли! Вечерята свърши.
Итериране на списъци с функцията range().
Ако искате да получите достъп до индексите на списък, не е ясно как да използвате for цикъл за тази цел. Възможно е достъп до всички елементи, но индексът на елемента ще остане недостъпен. Има обаче метод за достъп както до индекса на елемента, така и до самия елемент. За тази цел се използва функцията range()
комбиниран с функцията за дължина len()
:
fibonacci = [0,1,1,2,3,5,8,13,21] за i в диапазон (len(fibonacci)): print(i,fibonacci[i])
Вземи:
0 0 1 12132 4 3 5 5 6 8 7 13
внимание! При прилагане
len()
кlist
ortuple
, се получава съответният брой елементи от дадената редица.
Трудности при итериране на списъци
Когато итерирате върху списък, се препоръчва да избягвате динамиката на списъка в тялото на цикъла. За яснота можем да предложим следната опция:
colors = ["red"] for i in colors: if i == "red": colors += ["black"] if i == "black": colors += ["white"] print(colours)
Какво се случва при кандидатстване print(colours)
?
['червено', 'черно', 'бяло']
За да избегнете това, се препоръчва да взаимодействате с копието с помощта на срезове, както в примера по-долу:
colors = ["red"] for i in colors[:]: if i == "red": colors += ["black"] if i == "black": colors += ["white"] print(colours )
Резултат:
['Червено черно']
Списъкът е променен colours
, но това действие не повлия на цикъла. Данните, които трябваше да бъдат итерирани, останаха непроменени по време на изпълнението на цикъла.
Изброяване в python 3
Enumerate е вградена функция на Python. Повечето начинаещи, както и някои опитни програмисти, не знаят за съществуването му. Позволява ви автоматично да броите итерациите на цикъла. Например:
за брояч, стойност в enumerate(some_list): print(counter, value)
функция enumerate
също приема незадължителен аргумент (стойността на произхода, взета по подразбиране за 0
). Което го прави още по-ефективен.
my_list = ['apple', 'banana', 'cherry', 'peach'] за c, стойност в enumerate(my_list, 1): print(c, value) # Резултат: # 1 ябълка # 2 банан # 3 череша # 4 праскови