python course for me
November 12, 2023

Stepik: Операторы break, continue и else

break - досрочное прекращение цикла

continue - пропуск одной итерации цикла

break

ПРИМЕР КОМАНДЫ break

print('запуск цикла')
i = 0
while True:
	i += 1
	break
print('завершение цикла')

Программа работает бесконечно, пока не встретит команду break. То есть если убрать break - то "завершение цикла" мы не увидим

ПРИМЕР КОМАНДЫ break - 2
Предположим, что есть список и мы хотим определить есть ли там хоть одно четное число

d = [1, 3, 5, 6, 0, -4]
flFind = False # Инициализация переменной flFind значением False, которая будет использоваться для отслеживания нахождения четного числа
i = 0
while i < len(d):
	flFind = d[i] % 2 == 0 # Проверка, является ли текущий элемент d[i] четным числом; результат проверки сохраняется в переменной flFind
	if flFind: # Можно заменить на if flFind == True
		break
	i += 1
print(flFind)
# Вывод: True

continue

ПРИМЕР КОМАНДЫ continue
Пользователь вводит с клавиатуры числа, а все нечетные будут суммироваться. Но как только пользователь вводит 0 - подсчет прекращается

s = 0 # хранит сумму нечетных значений
d = 1 # переменная, куда пользователь будет вводить какие либо значения
while d != 0:
	d = int(input('Введите целое число '))
	if d % 2 == 0:
		continue # Если число четное, цикл переходит к следующей итерации без выполнения оставшегося кода внутри цикла
	s += d
	print(f'Сумма равна {s}')

else, который можно использовать в цикле while

Синтаксис:

while <условие цикла>:
	опреатор 1
	оператор 2
	.........
	оператор 3
	else: - необязательный блок
	блок операторов
	после завершения
	цикла
последующие операторы

ПРИМЕР else

Считаем сумму в ряде S = 1/2 + 1/3 + 1/4 + 1/10 + .... + 1/0. Если встречается деление на 0 - программа прерывается

S = 0
i = -10
while i < 100:
	if i == 0:
		break
	S += 1 / i
	i += 1
else:
	print('Сумма вычислена корректно')
print(S)
# Вывод: -2.9289682539682538

Сообщение 'Сумма вычислена корректно' не выводится потому что i принимает значение -10 и как только в условии цикла дошли до 0, сработал оператор break и прервался цикл while. Прерывание по break -нештатное завершение. Штатное завершение - это завершение по условию в цикле.

Если поставить, что while i < 0, то программа завершиться корректно.

S = 0
i = -10
while i < 0:
	if i == 0:
		break
	S += 1 / i
	i += 1
else:
	print('Сумма вычислена корректно')
print(S)
# Вывод: Сумма вычислена корректно
# -2.9289682539682538

ТЕКСТ ЛЕКЦИИ