While loops · Циклы while
Loop while a condition is true
- A
whileloop repeats as long as its condition is true. - It checks the condition before each pass.
- Use it when you do not know the number of repeats in advance.
Цикл while пока условие истинно
- Цикл
whileповторяется пока его условие истинно. - Он проверяет условие перед каждым проходом.
- Используйте его, когда заранее неизвестно количество повторений.
Always change the condition
- Something inside the loop must move toward making the condition false.
- If it never becomes false, the loop runs forever (an infinite loop).
- Press Stop if a loop ever gets stuck.
Всегда изменяйте условие
- Что-то внутри цикла должно стремиться сделать условие ложным.
- Если оно никогда не станет ложным, цикл будет работать бесконечно (бесконечный цикл).
- Нажмите Stop, если цикл застрял.
count = 3
while count > 0:
print(count)
count = count - 1
break and continue
breakstops the loop right away.continueskips the rest of this pass and goes to the next one.while True:loops forever until abreakends it.
break и continue
breakнемедленно прекращает цикл.continueпропускает оставшуюся часть текущего прохода и переходит к следующему.while True:работает бесконечно, покаbreakне остановит его.
n = 0
while True:
n = n + 1
if n == 4:
break
print(n)
Checking before or after
- A
whileloop checks first, so it may run zero times. - A "repeat until" loop checks after, so it always runs at least once.
- Python has no
repeat; usewhile True:with abreakat the end.
Проверка до или после
- Цикл
whileпроверяет условие сначала, поэтому он может выполниться ноль раз. - Цикл "repeat until" проверяет условие после, поэтому он всегда выполняется как минимум один раз.
- В Python нет
repeat; используйтеwhile True:со структуройbreakв конце.
In Cambridge pseudocode
whileis the pre-condition loop;REPEAT … UNTILis the post-condition loop.
В псевдокоде Cambridge
while— это цикл с предварительным условием;REPEAT … UNTIL— это цикл с постусловием.
Count ← 3
WHILE Count > 0
OUTPUT Count
Count ← Count - 1
ENDWHILE
REPEAT
OUTPUT Count
Count ← Count + 1
UNTIL Count = 3
Common mistakes
- Change something inside the loop so the condition can become false, or it runs forever.
- A
whilechecks its condition first, so it may run zero times.
Распространенные ошибки
- Изменяйте что-то внутри цикла, чтобы условие могло стать ложным, иначе он будет работать вечно.
- Цикл
whileсначала проверяет условие, поэтому он может выполниться ноль раз.
Now you try
- Make sure your condition will eventually become false.
- Stuck on the loop? Do the short drill Finish the countdown first. It is one missing line.
- Press Check answer to test your code.
Теперь попробуйте сами
- Убедитесь, что ваше условие в итоге станет ложным.
- Застыли на цикле? Выполните сначала короткую тренировку Finish the countdown. Она состоит из одной недостающей строки.
- Нажмите Check answer (Проверить ответ), чтобы протестировать свой код.
A while loop builds up a value · Цикл while накапливает значение
A while loop repeats until its condition is false. · Цикл while повторяется пока его условие истинно.
Use a while loop to count down. Each turn, print the value of count, then make count one smaller. Stop when it reaches 0, so the output is 5, 4, 3, 2, 1 — one per line. · Используйте цикл while для обратного отсчета. На каждой итерации выведите значение count, затем уменьшите count на единицу. Остановитесь, когда оно достигнет 0, чтобы вывод составил 5, 4, 3, 2, 1 — каждое с новой строки.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Use a while loop to add up the numbers 1 to 10. Store the total in total (the answer is 55). · Используйте цикл while для суммирования чисел от 1 до 10. Сохраните результат в total (ответ: 55).
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Start n at 1 and add 1 each pass. The loop stops too soon: it ends while n is still 1. Change the condition so it keeps going while n * n is at most 50. When it stops, n is the first whole number whose square is over 50. · Начните с n = 1 и прибавляйте 1 на каждом проходе. Цикл завершается слишком рано: он заканчивается, пока n всё ещё равно 1. Измените условие, чтобы он продолжал работать, пока n * n не превысит 50. Когда он остановится, n будет первым целым числом, квадрат которого больше 50.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Same answer, with break. n starts at 1 inside while True:. The if is already inside the loop and n grows after it. Change the condition so you break when n * n is greater than 50. Leave the answer in n (it is 8). Do not add 1 before the test — that makes the answer 9. · Тот же ответ, но с использованием break. Значение n начинается с 1 внутри цикла while True:. Переменная if находится внутри цикла, а n увеличивается после неё. Измените условие так, чтобы вы break, когда n * n станет больше 50. Сохраните ответ в n (это 8). Не добавляйте 1 перед проверкой — иначе ответом будет 9.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Start with n = 1 and steps = 0. While n is smaller than 1000, double n and add 1 to steps. When the loop ends, n is 1024. How many doublings did it take? Leave the answer in steps. · Начните со значений n = 1 и steps = 0. Пока n меньше 1000, удваивайте n и прибавляйте 1 к steps. Когда цикл завершится, n станет равным 1024. Сколько раз потребовалось удвоение? Сохраните ответ в steps.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.