Уроки 44–45 · 2 урока · М. Р. Файзиева, Д. М. Сайфуров, Н. С. Хайтуллаева. Информатика и информационные технологии, 9 класс. «Nashriyot uyi Tasvir», Ташкент, 2020
44
Программирование циклических алгоритмов: оператор while
Учебник: с. 86–88
ЦельЗнает цикл while и его структуру, решает задачи с неизвестным числом повторений по условию, помнит об изменении условия цикла, а также распознаёт и останавливает бесконечный цикл.
Новые слова
while: цикл, который повторяет своё тело, пока его условие равно True · whileусловие цикла: выражение типа bool, проверяемое перед каждым проходом · sikl shartiбесконечный цикл: цикл, условие которого никогда не становится False · cheksiz siklCtrl + C: клавиши, прерывающие работающую программу в IDLE · Ctrl + C
Объяснение
for удобен, когда число повторений известно заранее; если оно неизвестно, используется while. Он записывается while условие: с телом цикла на следующей строке с отступом в 4 пробела. Python сначала проверяет условие: если оно равно True, тело выполняется и происходит возврат к условию, если False – цикл заканчивается; если условие равно False с самого начала, тело не выполняется ни разу. Поэтому переменной цикла нужно присвоить начальное значение до цикла и изменять её в теле: i += 1 или ввод нового числа. Если условие никогда не становится False, цикл продолжается вечно; в IDLE его можно остановить клавишами Ctrl + C. while True: – тоже бесконечный цикл. Не пишите бесконечный цикл нарочно; если вы создали его по ошибке, остановите его.
Примеры
Подсчёт: i = 1 ⏎ while i <= 5: ⏎ print(i, end=" ") ⏎ i += 1 Он выполняется, пока i <= 5 истинно, и останавливается, когда i становится равным 6. Неизвестное количество: s = 0 ⏎ n = int(input()) ⏎ while n != 0: ⏎ s += n ⏎ n = int(input()) ⏎ print(s) Если набрать 4, 6, 10 и 0, то 0 не прибавляется и выводится 20.
Степени числа 2: p = 1 ⏎ while p < 100: ⏎ print(p, end=" ") ⏎ p *= 2 На экране появляется 1 2 4 8 16 32 64: когда p достигает 128, условие p < 100 ложно, и цикл останавливается. Сколько будет проходов, заранее не сказано – это определяет условие.
Работа в классе
«Следи за условием»: группа рисует на доске трассировочную таблицу программы с while (шаг, значения переменных, условие) и выполняет её вручную; затем сравнивает с результатом в IDLE.
Упражнения
1
Сколько раз выполняется этот цикл? i = 10 ⏎ while i > 0: ⏎ i -= 3
4
2
Напишите программу, которая с помощью while находит первую (самую левую) цифру числа (4 для 45678).
x = int(input()) ⏎ while x >= 10: ⏎ x //= 10 ⏎ print(x)
3
Почему эта программа выполняется бесконечно и как это исправить? i = 1 ⏎ while i < 5: ⏎ print(i)
i никогда не меняется, поэтому условие всегда истинно. В тело нужно добавить i += 1 с таким же отступом, как у print(i).
4
Когда выбирают while вместо for?
Когда число повторений заранее неизвестно, а цикл останавливается по условию.