Python break, continue, pass оператори с примери

⚡ Умно обобщение

Python Операторите break, continue и pass контролират потока на циклите. Операторът break прекратява цикъл, continue пропуска текущата итерация, а pass действа като заместител, който не прави нищо, когато се изпълнява вътре в цикли, функции или класове.

  • 🔘 Прекъсване: Операторът break спира цикъла незабавно и премества управлението на първия ред след него.
  • ☑️ Продължи: Операторът continue пропуска останалата част от текущата итерация и стартира следващата.
  • Пропуск: Изразът pass не прави нищо и работи като заместител за код, добавен по-късно.
  • 🧪 Вложени цикли: Прекъсването или продължаването засяга само най-вътрешния цикъл, оставяйки външните цикли да се изпълняват.
  • 🛠️ И двата цикъла: И трите оператора работят във for-цикли и while-цикли, за да променят нормалния поток на итерации.
  • 🤖 Помощ с изкуствен интелект: Асистентите с изкуствен интелект и GitHub Copilot предлагат и обясняват правилното използване на break, continue и pass.

Python break, continue, pass изявления

Концепцията за цикли е налична в почти всички езици за програмиране. Python циклите помагат за итериране на списък, кортеж, низ, речник и набор. Поддържат се два типа цикъл Python „за“ и „докато“. Блокът от код се изпълнява многократно в цикъла, докато условието се провали.

Изявленията за контрол на цикъл прекъсват потока на изпълнение и прекратяват/пропускат итерацията според нашите нужди. Python break и continue се използват вътре в цикъла, за да променят потока на цикъла от неговата стандартна процедура.

Цикъл for или while цикъл е предназначен да повтаря, докато даденото условие се провали. Когато използвате оператор break или continue, потокът на цикъла се променя от нормалния му начин.

Python изявление за прекъсване

Командата break се грижи за прекратяването на цикъла, в който се използва. Ако командата break се използва във вложени цикли, текущият цикъл се прекратява и потокът ще продължи с последващия код, който идва след цикъла.

Схемата на потока за израза за прекъсване е както следва:

Python изявление за прекъсване

Следват стъпките, включени в блок-схемата.

Стъпка 1) Изпълнението на цикъла започва.

Стъпка 2) Ако условието на цикъла е вярно, то ще изпълни стъпка 2, при което ще се изпълни тялото на цикъла.

Стъпка 3) Ако тялото на цикъла има израз за прекъсване, цикълът ще излезе и ще премине към стъпка 6.

Стъпка 4) След като условието за цикъл се изпълни и приключи, ще се премине към следващата итерация в Стъпка 4.

Стъпка 5) Ако условието на цикъла е невярно, то ще излезе от цикъла и ще премине към стъпка 6.

Стъпка 6) Край на цикъла.

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

Когато for-цикълът започне да се изпълнява, той ще провери if-условието. Ако вярно, операторът break се изпълнява и for-цикълът ще бъде прекратен. Ако условието е невярно, кодът вътре във for-цикъла ще бъде изпълнен.

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

Когато се изпълни цикълът while, той ще провери условието if; ако е така вярно, Операторът break се изпълнява и цикълът while ще приключи. Ако условието е невярно, кодът вътре в цикъла while ще се изпълни.

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

Пример: Изявление за прекъсване във for-цикъл

Списъкът my_list = ['Siya', 'Tiya', 'Guru', 'Дакш', 'Рия', 'Guru'] се изпълнява с for-loop. Интересуваме се от търсенето на името 'Guru' от списъка my_list.'

Вътре във for-цикъла, if-условието сравнява всеки елемент от списъка с името 'Guru'. Ако условието стане истина, ще се изпълни операторът break и цикълът ще бъде прекратен.'

Работният пример, използващ оператор break, е както е показано по-долу:

my_list = ['Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 

for i in range(len(my_list)):
    print(my_list[i])
    if my_list[i] == 'Guru':
        print('Found the name Guru')
        break
        print('After break statement')

print('Loop is Terminated')

Очакван резултат:

Siya
Tiya
Guru
Found the name Guru
Loop is Terminated

Пример: Изявление за прекъсване в цикъла while

my_list = ['Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
i = 0

while True:
    print(my_list[i])
    if (my_list[i] == 'Guru'):
        print('Found the name Guru')
        break
        print('After break statement')
    i += 1

print('After while-loop exit')

Очакван резултат:

Siya
Tiya
Guru
Found name Guru
After while-loop exit

Пример: оператор Break във вложени цикли

В примера имаме 2 for цикъла. И двата for-цикъла итерират от диапазон от 0 до 3. Във втория for-цикъл сме добавили условие, при което, ако стойността на втория индекс на for-цикъл е 2, той трябва да се прекъсне.

Така че поради оператора break, вторият for-цикъл никога няма да повтори за 2 и 3.

for i in range(4):
    for j in range(4):          
        if j==2:    
            break
        print("The number is ",i,j);  

Очакван резултат:

The number is  0 0
The number is  0 1
The number is  1 0
The number is  1 1
The number is  2 0
The number is  2 1
The number is  3 0
The number is  3 1

Python продължи изявление

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

Синтаксис:

continue

Продължаване на схемата

Python продължи изявление

Следват стъпките, включени в блок-схемата.

Стъпка 1) Изпълнението на цикъла започва.

Стъпка 2) Изпълнението на кода вътре в цикъла ще бъде извършено. Ако в цикъла има оператор за продължение, контролът ще се върне към стъпка 4, т.е. началото на цикъла за следващата итерация.

Стъпка 3) Изпълнението на кода вътре в цикъла ще бъде извършено.

Стъпка 4) Ако има оператор за продължаване или изпълнението на цикъла вътре в тялото е завършено, то ще извика следващата итерация.

Стъпка 5) След като изпълнението на цикъла приключи, цикълът ще излезе и ще премине към стъпка 7.

Стъпка 6) Ако условието за цикъл в стъпка 1 е неуспешно, то ще излезе от цикъла и ще премине към стъпка 7.

Стъпка 7) Край на цикъла.

Продължете потока на изпълнение на оператора

Цикълът for преглежда дадения масив my_list. Вътре в цикъла for се изпълнява условието if. Ако условието е вярно, операторът за продължаване се изпълнява и управлението ще премине към началото на цикъла за следващата итерация.

Потокът на кода е както е показано по-долу:

Продължете потока на изпълнение на оператора

Когато цикълът while се изпълни, той ще провери условието if, ако е така вярно, Изпълнява се операторът continue. Контролът ще се върне в началото на while-loop за следващата итерация. Ако условието е невярно, кодът вътре в while-loop ще се изпълни.

Потокът на кода е както е показано по-долу:

Продължете потока на изпълнение на оператора

Пример: Продължете във for-цикъла

for i in range(10):    
    if i == 7:
        continue  
    print("The Number is :" , i)

Очакван резултат:

The Number is : 0
The Number is : 1
The Number is : 2
The Number is : 3
The Number is : 4
The Number is : 5
The Number is : 6
The Number is : 8
The Number is : 9

Пример: Продължете вътре в цикъла while

i = 0
while i <= 10:    
    if i == 7:
        i += 1
        continue  
    print("The Number is  :" , i)
    i += 1

Очакван резултат:

The Number is  : 0
The Number is  : 1
The Number is  : 2
The Number is  : 3
The Number is  : 4
The Number is  : 5
The Number is  : 6
The Number is  : 8
The Number is  : 9
The Number is  : 10

Пример: Продължете във вложен цикъл

Примерът по-долу показва използването на 2 for-цикъла. И двата for-цикъла итерират от диапазон от 0 до 3. Във втория for-цикъл има условие, при което ако стойността на втория индекс на for-цикъл е 2, трябва продължи. Така че поради продължи оператор, вторият for-цикъл ще пропусне итерация за 2 и ще продължи за 3.

for i in range(4):
    for j in range(4):          
        if j==2:    
            continue
        print("The number is ",i,j);

Очакван резултат:

The number is  0 0
The number is  0 1
The number is  0 3
The number is  1 0
The number is  1 1
The number is  1 3
The number is  2 0
The number is  2 1
The number is  2 3
The number is  3 0
The number is  3 1
The number is  3 3

Python декларация за пропуск

Python изразът pass се използва като контейнер в цикли, функции, клас, оператор if, който е предназначен да бъде имплементиран по-късно.

Синтаксис

pass

Какво е изявление за пропуск в Python?

Python pass е нулев израз. Когато на Python Интерпретаторът попада на оператора pass, не прави нищо и бива игнориран.

Кога да използвате изявлението за пропуск?

Помислете, че имате функция или клас с празно тяло. Планирате да напишете кода в бъдеще. The Python интерпретаторът ще изведе грешка, ако попадне на празно тяло.

Коментар може да бъде добавен и в тялото на функцията или класа, но интерпретаторът игнорира коментара и ще изведе грешка.

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

Пример: израз за предаване вътре във функция

В примера пропускът се добавя във функцията. Той ще се изпълни, когато функцията бъде извикана, както е показано по-долу:

def my_func():
    print('pass inside function')
    pass
my_func()

Очакван резултат:

pass inside function

Пример: израз за предаване вътре в класа

В примера по-долу създадохме само празния клас, който има оператор за печат, последван от израз за пропуск. Изявлението за пропуск е индикация, че кодът в класа „My_Class“ ще бъде внедрен в бъдеще.

classMy_Class:
print("Inside My_Class")    
pass

Изход:

Inside My_Class

Пример: израз за предаване вътре в цикъла

В примера по-долу, низът 'Guru' се използва във for-loop. Условието if проверява за символ 'r' и извиква оператора print, последван от pass.

# Pass statement in for-loop
test = "Guru"
for i in test: 
    if i == 'r': 
        print('Pass executed') 
        pass
    print(i)

Очакван резултат:

G
u
Pass executed
r
u

Пример: предаване на оператора в if-цикъла

В примера на ако цикъл проверява стойността на a и ако условието е вярно, отива и отпечатва израза „изпълнено преминаване“, последвано от преминаване.

a=1
if a==1:
    print('pass executed')
    pass

Очакван резултат:

pass executed

Кога да се използва оператор за почивка и продължение?

  • A почивка операторът, когато се използва вътре в цикъла, ще прекрати цикъла и ще излезе. Ако се използва във вложени цикли, той ще излезе от текущия цикъл.
  • A продължи ще спре текущото изпълнение, когато се използва вътре в цикъл, и контролата ще се върне в началото на цикъла.

Основната разлика между командата break и continue е, че когато се срещне ключова дума break, тя ще излезе от цикъла.

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

Въпроси и Отговори

Операторът continue пропуска останалата част от текущата итерация на цикъла и преминава към следващата. Операторът pass не прави нищо - той е само заместител, който поддържа синтактично валиден цикъл, функция или клас.

Операторът break излиза само от най-вътрешния цикъл, който го съдържа, така че всички външни цикли продължават да се изпълняват. За да излезете от няколко цикъла едновременно, използвайте променлива flag или преместете циклите във функция и върнете резултата.

Да. Блокът else от цикъл се изпълнява само когато цикълът завърши нормално, без да се изпълни прекъсване. Той е полезен за логиката на търсене, като например отпечатване на съобщение „не е намерен“ след проверка на всеки елемент в поредица.

Python Поражда SyntaxError, защото break и continue са валидни само в рамките на цикъл for или while. Ако имате нужда от заместител извън цикъл, използвайте оператора pass, който е разрешен навсякъде, където се очаква оператор.

След като break или continue се изпълнят, контролът напуска текущата итерация, така че операторите, написани след тях на следващите редове, са недостъпни. В горните примери, извикването на print() след break никога не се изпълнява и е ефективно мъртъв код.

Операторът break излиза от най-близкия затворен цикъл, но поддържа функцията да работи. Операторът return излиза от цялата функция незабавно, като връща стойност и едновременно с това завършва всеки цикъл вътре в тази функция.

Асистенти с изкуствен интелект, като ChatGPT, генерират код за управление на цикъл от обикновено описание, обясняват защо цикълът завършва преждевременно, маркират неправилно поставени оператори break или continue и предлагат кои команди pass, continue или break най-добре отговарят на вашата логика.

Да. GitHub Copilot автоматично довършва break, continue и pass от коментар или заобикалящ код. Инструментите на Agentic AI отиват по-далеч, като рефакторират потока на цикъла, премахват неработещ код след break и автоматично поправят грешки в контролния поток в целия файл.

Обобщете тази публикация с: