В областта на компютърните науки се използва цикълът заЗа да направите същия тип действие многократно. Например, за да изтеглите стоките от списъка един по един, да пресетите номерата в определен диапазон и да изпълните съответния скрипт за всеки от тях.
Обикновената линия, за разлика от времето, се използва най-често. И двете версии съществуват на всички програмни езици. В редица SP са синтактично и семантично идентични.
В python, for loop се състои от:
За разлика от C-подобни езици, инструкциите несе разделят с къдрави скоби {}. За да направите това, използвайте оператора ":" след условния блок и го подредете в тялото на цикъла. Без отметка кодът на раздела не работи и ще се появи грешка.
Като допълнителни оператори се прилагат продължават, прекъсват, преминават - указатели, за да прескочат итерация, завършвайки цикъла, прескачайки итерията. Те са посочени след блока на някои условия if-else.
Този цикъл се използва за преливане на всички елементи на колекцията. Задайте във формат
за променлива в списъка: инструкция
Тя прилича на цикъл на foreach от C ++.
foreach (въведете елемент в комплект) {};
за i в "здравей свят":
печат (i * 2, end = "")
hheelllloo wwoorrlldd
В Python, цикъла for е споделен - инструкциите в тялото се изпълняват за всеки член на списъка без изрично посочване на последователността. Инструкцията се изпълнява в най-оптималния ред.
На променливата i се присвоява всеки обектколекция. Елементите от списъци могат да бъдат числови и низови, но винаги от цяло число. Когато се работи с многомерни масиви, променливата i ще се разбира като вложени масиви.
list_of_lists = [["чукова глава", "голяма бяла", "кучка"], [0, 1, 2], [9.9, 8.8, 7.7]]
за списък в list_of_lists:
печат (списък)
["чукова глава", "голяма бяла", "кучка"]
[0, 1, 2]
[9.9, 8.8, 7.7]
За да покажете всеки елемент от вложен масив, трябва да използвате вложени цикли.
Операторът ви позволява да пропуснете част от for loop ипреминете към следващата итерация. Това се прави, когато възникне външен фактор. Continue се показва след допълнителния блок if, но самото условие е вътре в цикъла преди основната инструкция.
число = 0
за число в обхват (10):
номер = брой + 1
ако номер == 5:
продължи # тук е продължението на изявлението
print (str (номер))
print ("Край")
Всеки номер в списъка от стойности от 0 до 10увеличава променливата на числото, която първоначално е равна на нула. Когато номерът получи стойност 5, цикълът ще спре и следващата итерация ще започне. Оказва се:
1
2
3
4
6
7
8
9
10
край
Извлечението се използва във връзка с условието if. Този дизайн напълно прекъсва цикъла, когато възникне определен фактор.
число = 0
за число в обхват (10):
номер + = 1
ако номер == 5:
почивка # почивка
print ("Number =" + str (номер))
print ("Извън цикъла")
Тук операторът if определя условие: ако стойността на променливата е 5, цикълът завършва. Всяка итерация изпълнява първия метод print () и показва известие.
Номер = 5.
Когато цикъла е спрян от оператор за прекъсване, следващият метод print () се изпълнява.
Друг пример проверява дали второто число се дели на първото без остатък.
за n в обхват (2, 10):
за x в обхват (2, n):
ако n% x == 0:
печат (n, "равно", x, "*", n // x)
почивка
друго:
# цикълът е преминал, без да намери фактор
print (n, "е основно число")
В този случай се използва вложена верига.Първо, всички членове на множеството от числа в диапазона от 2 до 10 се приемат като n. За всяко n се определя нов списък с елементи от 2 до n. Така имаме 8 масива с различна дължина. Всички елементи от получените колекции се задават на променлива x. Условието if потвърждава, че резултатът от n / x е цяло число. Ако е вярно, цикълът завършва, показва съобщение. Ако n / x се споделя с останалата част, се показва друго съобщение.
Операторът е длъжен да игнорира допълнителни условия.
число = 0
за число в обхват (10):
номер + = 1
ако номер == 5:
минавам
print (str (номер))
print ("Край")
Програмата работи както ако условието, ако номер == 5 не съществува. Появява се на монитора
1
2
3
4
5
6
7
8
9
10
край
Виждаме това по време на изпълнението на пропускащия операторнищо не се случва. Той се използва като stub само там, където е необходим синтактично. Например, при разработването на нов клас с методи, които не е необходимо да се прилагат.
клас MyClass (обект):
def meth_a (самостоятелно):
минавам
def meth_b (самостоятелно):
отпечатайте "I" m meth_b "
Функцията meth_a все още няма собствена инструкция. Но Python изисква блоковете от код, ако, освен def, class, не са празни. В противен случай се появява съобщение за грешка.
IndentationError: очаква се вдлъбнат блок.
Вместо това можете да посочите пропуск.
клас CompileError (изключение):
минавам
Друга цел на използването на оператора pass е изрично да не правите нищо.
Това може да се види в друг пример за цикъла for и pass:
за t в обхват (25):
правя (t)
ако t == 20:
минавам
В този код фрагментът повтаря над елементите от списъкаот 0 до 25. Те се считат за променлива t. При всяка итерация се изпълнява някаква функция do (). Ако е необходимо да не се случи нищо на някаква стойност, се посочва пропуск. Например функцията do показва съобщение 24 пъти и пропуска инструкцията при t = 20.
Програмите с цикъл for помагат да се създаде някаква последователност от стойности и да се присвоят на променливи.
Възможен е следният запис:
за i в [0, 1, 2, 3, 4, 5]:
печат i ** 2
Ако списъкът имаше повече елементи, би било по-рационално да се създаде отделен масив.
масив = [1, 2, 3, 4, 5, 6, 7, 8, 9]
за масив:
печат i
За създаване на списъци като
масив = [1, 2, 3, 4, 5, 6, 7, 8, 9]
, в Python има функция ().Методът range () в областта на параметъра взема три аргумента: начална стойност, край, стъпка. Необходим е само последният елемент от списъка. По този начин, диапазон (5) ще означава, че масивът включва числа от 0 до 5. Ако посочите стъпка, тогава трябва да определите началния елемент.
обхват (0, 10, 2)
Получаваме:
0, 2, 4, 6, 8, 10
Работата с такива списъци е подобна на числовата. Например, има списък
color = ["червен", "зелен", "син", "жълт"]
Разработчиците, свикнали с C, могат да напишат следната функция.
за i в обхват (len (цветове)):
цветове за печат [i]
Кодът ще се изпълни без грешки, но по-правилното използване на цикъла for изглежда така:
color = ["червен", "зелен", "син", "жълт"]
за цвят в цветове:
цвят на печат
Ако трябва да преминете през списъка от последната до нулата, се използва функцията reversed ().
color = ["червен", "зелен", "син", "жълт"]
за цвят в обърнат (цветове):
цвят на печат
Следващият запис е погрешен. Отново това дойде от езика на С.
Python има вградени функции за изброяване () за работа с масивни индекси. Те са полезни в python за бримки.
Аргументът е последователност от стойности. Функцията enumerate () опростява използването на следния код:
за i в обхват (len (L)):
артикул = L [i]
# ... изчисляване на някакъв резултат въз основа на елемент ...
Тук се използва методът len (). Той връща броя на елементите, в този случай масив L. Множеството елементи се приемат като аргумент на функцията range (). Така дефинираме списъка [0, ... n].
С помощта на L [i] получаваме достъп до всеки елемент от масива L.
L [0], L [1], L [2] и т.н.
Функцията enumerate () елиминира необходимостта от инициализиране на променлива b и опростява писането
за брояч, стойност в изброяване (L):
печат ("индекс:" брояч, "стойност:" стойност)
Enumerate () връща двойка контра-елементи, така че две променливи са посочени с оператора за цикъл.
Функциите items () и iteritems (), които се използват като методи, са сходни.
d.items ()
d.iteritems ()
Когато трябва да използвате членове от няколко списъка, се използва функцията zip ().
Той взема списък А и списък Б, превръща ги в един обект с цип, който съдържа вложени кортежи. Всеки елемент от новия обект свързва членовете на списъци A и B и ги сортира по индекси.
zip_object [1] = [A [1], B [1]];
Ако на входа zip () са посочени 4 масива,елементите на zip масив ще съдържат 4 елемента всеки. Опаковането на масиви с различна дължина не причинява грешка. В новия обект ще бъдат поставени само елементи, които съдържат двойка.
За да включите всеки елемент в кортежа, дори и този, който няма чифт, се използва zip_logest ().
списък (itertools.zip_lo most ((1,2,3), [4]))
# [(1, 4), (2, няма), (3, няма)]
Когато трябва не просто да преминете през елементите на масив, но да го модифицирате, се прилага функцията keys ().
Методът дублира и връща списък с налични речникови ключове.
за k в d.keys ():
ако k.startswith ("R"):
del d [k]
Има масив d. Елементите му се копират с помощта на метода key (). Всеки елемент е променлива k. Той се обработва с помощта на startwith, при съвпадение елементът се изтрива от основния масив.
startwith () връща флаг, който проверява дали редът започва с посочения префикс. Функцията има три аргумента: префикс, начало, край.
str.startswith (префикс [, старт [, край]]) -> bool
Изисква се само първото - префикс. Тя може да бъде низ или кортеж.
my_str.startswith („стойност“)
или
my_str.startswith (('value1', 'value2'))
Ако трябва да посочите няколко реда в полето на параметъра, елементите се увиват в допълнителни скоби ().
Аргументът start сочи към индекса на елемента скоето започва обратното броене. Поддържат се положителни и отрицателни стойности. Ако start = -x, тогава търсенето започва от края на елемента с индекс x. Крайният параметър означава последния символ, при който трябва да спрете синтаксичния анализ. Той също така поддържа отрицателни стойности. Ако end = -x, последният член на списъка с индекс x от началото.
Подобно на startwith (), функцията endwith () работи. Той проверява дали линията завършва с посочения постфикс. Той има три суфикса на параметри, начало, край, също връща булева стойност.
Ако трябва да свържете елементите на два масива,най-бързият начин е да се използват куп методи на dict (izip (масив 1, масив 1)). В този случай елементите не са подредени последователно един след друг, а във формата:
„Елемент на масив 1“: „Елемент от масив 2“
имена = ["raymond", "rachel", "matthew"] цветове = ["червено", "зелено", "синьо"] d = dict (zip (имена, цветове)) # {"matthew": "blue", "rachel": "green", "raymond": "red"}
Методът dict () създава речник, в койтостойностите се поставят по горния начин - чрез „:“. Като основна стойност се използва елементът на масив 2. За да го извикате, трябва да го препратите по индекс - стойността на масив 1.
d [‘раймънд’] #червен
Функцията get () се използва, за да установи от колко елемента се състои списък.
d.get (ключ, по подразбиране = Няма)
Този метод проверява речника d за наличие на ключ и връща индексния ключ [индекс].
цветове = ["червено", "зелено", "червено", "синьо", "зелено", "червено"] d = {} за цвят в цветове: d [цвят] = d.get (цвят, 0) + 1
Методът get () е по-удобен и бърз аналог на следния код.
цветове = ["червено", "зелено", "червено", "синьо", "зелено", "червено"] d = {} за цвят в цветове: ако цветът не е в d: d [цвят] = 0 d [цвят] + = 1
Това са основни примери и възможни грешки на цикъла for.