Главная страница

Циклы for и while. Цикл for


Скачать 0.54 Mb.
НазваниеЦикл for
Дата23.11.2022
Размер0.54 Mb.
Формат файлаdocx
Имя файлаЦиклы for и while.docx
ТипУрок
#808442
страница5 из 7
1   2   3   4   5   6   7

Блок else в циклах


Python допускает необязательный блок else в конце циклов while и for. Это уникальная особенность Python, не встречающаяся в большинстве других языков программирования. Синтаксис такой конструкции следующий:

while условие:

блок кода1

else:

блок кода2

# или

for i in range(10):

блок кода1

else:

блок кода2

Блок кода2, указанный в else, будет выполнен, когда штатным образом завершается цикл while или for.

Сейчас вы можете подумать: «Как это может быть полезным?» Ведь мы можем сделать то же самое, поместив блок кода2 сразу после цикла while или for без else:

while условие:

блок кода1

блок кода2

# или

for i in range(10):

блок кода1

блок кода2

В чем разница?



Если слово else отсутствует в описании цикла, то блок кода2 будет выполняться после завершения цикла, несмотря ни на что. Если же слово else присутствует, то блок кода2 будет выполняться только в том случае, если цикл завершается штатным образом. Под штатным завершением цикла, подразумевается его завершение без использования оператора прерывания break.

Рассмотрим следующий программный код:

n = 5

while n > 0:

n -= 1

print(n)

else:

print('Цикл завершен.')

Данный цикл повторяется до тех пор, пока истинно условие n > 0. Поскольку цикл завершился штатным образом,то блок кода в инструкции else будет выполнен. Таким образом, результатом выполнения такой программы будут строки:

4

3

2

1

0

Цикл завершен.

Рассмотрим следующий программный код:

n = 5

while n > 0:

n -= 1

print(n)

if n == 2:

break

else:

print('Цикл завершен.')

Этот цикл преждевременно завершается с помощью оператора прерывания break, поэтому блок кода в инструкции else не будет выполнен. Результатом выполнения такой программы будут строки:

4

3

2

Вам может показаться, что инструкция else в циклах while и for не совсем соответствует тому, что реально происходит. Гвидо ван Россум, создатель Python, сказал, что если бы он проектировал язык Python заново, то избавился бы от else в циклах.

Напишем, программу, которая определяет, содержит ли введенное пользователем число, цифру 7. Вместо программного кода, написанного ранее:

num = int(input())

n = num

flag = False

while n != 0:

last = n % 10

if last == 7:

flag = True

break # прерываем цикл, так как число гарантированно содержит цифру 7

n //= 10

if flag is True:

print('Число', num, 'содержит цифру 7')

else:

print('Число', num, 'не содержит цифру 7')

мы можем использовать:

num = int(input())

n = num

while n != 0:

last = n % 10

if last == 7:

print('Число', num, 'содержит цифру 7')

break

n //= 10

else:

print('Число', num, 'не содержит цифру 7')
1   2   3   4   5   6   7


написать администратору сайта