Въведение в вградените контури на Python

Добре дошли в друга глава в курса за обучение на Python - Nested Loops. Чудесен начин да затворите контур, вложени цикли са доказали своята стойност във всеки език за програмиране. Днес ще се съсредоточим конкретно върху Python - типовете, синтаксиса и примерите. Така че, нека започнем.

Вложени бримки

Добре би било накратко да докоснете базата на Nested Loops, преди да продължите конкретно с Python. Ако в тялото на друг цикъл съществува цикъл, той се нарича "Nested Loop". Това означава, че искаме да изпълним вътрешния цикъл на кода няколко пъти. Външният цикъл контролира колко повторения ще претърпи вътрешният цикъл. Основен пример за вложен цикъл е:

for (i=0; i<10; i++)
(
for (j=0; j<10; j++)
(
//This code will execute 100 times.
)
//This code will execute 10 times.
)

Тук трябва да се отбележи, че всеки тип контур може да бъде вложен в друг цикъл. Например цикълът за известно време може да бъде вложен в a за цикъл или обратно.

Python вложени цикли

1) Вложен за синтаксис на цикъла

Основният синтаксис на вложен за цикъл в Python е:

for (iterating_variable_1) in (sequence_1): #Outer Loop
for (iterating_variable_2) in (iterating_variable_1/sequence_2): #Inner Loop
(code to execute)

пример

for i in range(11): #line 1
for j in range(i): #line 2
print('*', end='') #line 3
print('') #line 4

изход:

Изпълнение поток

Нека се опитаме да разберем потока на изпълнение на горната програма. В програмата използвахме две променливи итерация i и j, за да отпечатаме модел на звезди.

Компилаторът започва с ред 1. Той среща функция за цикъл и обхват. Функцията за диапазон в Python извежда повтарящ се масив от цели числа от 0 до числото, посочено в аргумента. Номерът на аргумента е изключен от масива. В нашия случай тя ще генерира масив (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Сега компилаторът знае, че трябва да изпълни следващия набор от операции 10 пъти.

Когато се придвижва към линия 2, се натъква на друга функция за цикъл и обхват. Обърнете внимание, че аргументът за тази функция диапазон е изчислена стойност на нашата променлива итерация i. Така че, динамично генерира масив в зависимост от стойността на i. Когато i = 0, масивът е празен. Когато i = 1, масивът е (0). Когато i = 2, масивът е (0, 1) и така нататък.

И така, броят пъти, когато се изпълнява ред 3, зависи пряко от стойността на i. Обърнете внимание на част end = '' inline 3. Това е за да се предотврати отпечатването на Python на линия, след всяка звезда. Искаме само подаване на линия в края на всяка итерация на външния контур. По този начин, ние изрично отпечатахме препращане на редове в ред 4 от нашия код.

Затова сега нека разгледаме отблизо всяка итерация на нашия вложен цикъл.

Итерация на външната верига 1

I = 0, j = (), output is a blank line.

Итерация на външната верига 2

I = 1, j = (0), output = *

Итерация на външната верига 3

I = 2, j = (0, 1), output = **

Итерация на външната верига 4

I = 3, j = (0, 1, 2), output = ***

,
,
,

Итерация на външната верига 10

I = 9, j = (0, 1, 2, 3, 4, 5, 6, 7, 8), output = *********

Итерация на външната верига 11

I = 10, j = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), output = **********

2) Вложен докато цикъл

Синтаксис

Синтаксисът за гнездене, докато цикъл в Python е:

while (expression_1): #Outer loop
(code to execute) #Optional
while (expression_2): #Inner loop
(code to execute)

За разлика от for цикъл, докато цикълът няма предварително компилирана итерабелна последователност. Докато цикълът продължава да изпълнява кода, докато израза се прецени като истина. Така че, разработчикът винаги трябва да има предвид да актуализира итерационната променлива / израз, или в противен случай цикълът ще влезе в режим на безкрайно изпълнение.

пример

i=1 #line 1
while(i<=5): #line 2
j=5 #line 3
while(j>=i): #line 4
print(j, end=' ') #line 5
j-=1 #line 6
i+=1 #line 7
print() #line 8

изход:

Изпълнение поток

Ред 1 на кода задава итерационната променлива на външния контур на начална стойност. Следващият ред е началото на външния, докато цикъл. Той има израз i <= 5. Този израз се оценява за истинска стойност след всяка итерация. Изпълнението влиза в цикъла само ако условието е вярно. Веднага след като състоянието стане невярно, цикълът се прекратява.

Тъй като първоначалната стойност на I е 1, условието в ред 2 е вярно. И така, компилаторът се придвижва към линия 3 и задава итерационната променлива на вътрешния ни цикъл j до 5. В ред 4 отново има цикъл за време с израз, който се оценява на true. И така, компилаторът изпълнява ред 5 и 6. След това се връща обратно към ред 4 и оценява състоянието. Ако условието е вярно, то отново влиза в ред 5 и 6. Ако условието стане невярно, цикълът се прекратява и следващите редове, които трябва да бъдат изпълнени, са линии 7 и 8. Същото се следва и за външния цикъл.

Ред 6 и 7 са много важни, тъй като актуализират нашата итерационна променлива. Без тях програмният поток би влязъл в безкраен режим на изпълнение, тъй като изразите на цикъл винаги ще доведат до истинност.

Трябва ли да счупя, да продължа или да мина

Както при почти всички други езици за програмиране, и Python има концепцията за прекъсване и продължаване. Тези ключови думи помагат за прекратяване на всеки цикъл или пропускане на определена итерация на цикъла. Python също има друга ключова дума - пас. Нека да разгледаме тези.

1) Прекъсване

Ключовата дума break разбива компилатора да изскочи от цикъл и да прекрати изпълнението му.

пример

for i in range(5):
for j in range(5):
if i == j:
break
print(j, end='')
print('')

изход:

Програмата по-горе разчупва вътрешния цикъл, ако стойностите на I и j са равни. Той не изпълнява допълнителни итерации на цикъла. Това може да бъде разбрано по-нататък с изложението продължение

2) Продължете

Ключовата дума „продължение“ показва компилатора да пропусне текущата итерация на цикъла и да продължи със следващата итерация.

пример

for i in range(5):
for j in range(5):
if i == j:
continue
print(j, end='')
print('')

изход:

Забележете, че същата програма, но с инструкция продължи вместо счупване, не прекратява изпълнението на цикъла. Той пропуска само текущата итерация.

3) Пасиране

Ключовата дума за преминаване е интересна в Python. Това просто означава, че не прави нищо. Той се използва, когато кодовият блок е необходим синтактично, но не искате да се изпълнява никаква команда. Той просто действа като заместител.

пример

for i in range(5):
for j in range(5):
if i == j:
#I am not sure what to do when i equals j, so for now I will pass.
pass
print(j, end='')
print('')

изход:

заключение

Циклите са стратегически много важни, за да се научите да изпълнявате задача с минимални редове от код. Това е само основно въведение към бримките. Препоръчва се да играете повече, да проявявате творчество и да изследвате допълнително потенциала на бримките.

Препоръчителни статии

Това е ръководство за Python Nested Loops. Тук обсъждаме вградените контури на Python със синтаксиса, примерите, изхода и потока на изпълнение. Можете също да разгледате следната статия, за да научите повече -

  1. Python Frameworks
  2. Как да инсталирате Python
  3. Ръководство за Loops в Python
  4. Какво е Java интерфейс?
  5. Различни видове контури с неговите предимства
  6. Цикли в VBScript с примери