/ / За цикъл: примери и възможни грешки

За цикъл: примери и възможни грешки

В областта на компютърните науки се използва цикълът заЗа да направите същия тип действие многократно. Например, за да изтеглите стоките от списъка един по един, да пресетите номерата в определен диапазон и да изпълните съответния скрипт за всеки от тях.

Обикновената линия, за разлика от времето, се използва най-често. И двете версии съществуват на всички програмни езици. В редица 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 се споделя с останалата част, се показва друго съобщение.

Pass

Операторът е длъжен да игнорира допълнителни условия.

число = 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.

хареса:
0
Популярни публикации
Духовното развитие
храна
ш