Циклы являются одним из фундаментальных элементов программирования, позволяющих выполнять повторяющиеся действия, что значительно сокращает количество кода и делает программы более гибкими. Цикл while
— это один из базовых циклов, который продолжает выполнение, пока заданное условие истинно. В этой лекции мы детально рассмотрим цикл while
, его особенности, а также такие полезные операторы, как break
, continue
и else
, которые позволяют управлять поведением цикла.
while
Цикл while
— это конструкция, которая позволяет выполнять блок кода неоднократно, пока условие остается истинным (True
). Как только условие становится ложным (False
), выполнение цикла прекращается.
Синтаксис цикла while
:
while условие:
блок_кода
Пример 1: Простой цикл while
count = 0
while count < 5:
print("Count is:", count)
count += 1
Объяснение:
count
инициализируется значением 0
.count < 5
.count
и увеличивает его на 1
.count
достигает значения 5
, условие становится ложным, и цикл прекращается.Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
Бесконечный цикл — это цикл, который никогда не прекращает выполнение, потому что условие всегда остается истинным.
Бесконечные циклы могут быть полезны в определенных ситуациях, например, в серверах или игровых циклах, но важно предусмотреть способ выхода из таких циклов, чтобы программа не зависала.
Пример 2: Бесконечный цикл while
while True:
print("Это бесконечный цикл")
Этот код будет выводить строку "Это бесконечный цикл" бесконечно, потому что условие True
всегда истинно.
break
Инструкция break
используется для немедленного завершения выполнения цикла, даже если условие цикла еще истинно. Это полезно, когда нужно прервать выполнение цикла при наступлении определенного события или выполнения условия.
Пример 3: Использование break
count = 0
while count < 10:
if count == 5:
break
print("Count is:", count)
count += 1
Объяснение:
count < 10
.count
достигает значения 5
, срабатывает условие if
, и инструкция break
завершает цикл.Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
continue
Инструкция continue
используется для пропуска текущей итерации цикла и перехода к следующей. Это полезно, когда нужно пропустить выполнение определенных шагов в цикле для отдельных значений.
Пример 4: Использование continue
count = 0
while count < 10:
count += 1
if count % 2 == 0:
continue
print("Count is:", count)
Объяснение:
count
на 1
в каждой итерации.count
четное (count % 2 == 0
), инструкция continue
пропускает текущую итерацию, и вывод не выполняется.Результат:
Count is: 1
Count is: 3
Count is: 5
Count is: 7
Count is: 9
else
с циклом while
Блок else
может использоваться с циклом while
, что является уникальной особенностью Python. Блок else
выполняется, когда цикл завершился естественным образом, то есть условие цикла стало ложным. Если цикл был прерван инструкцией break
, блок else
не выполняется.
Пример 5: Использование блока else
с циклом while
count = 0
while count < 5:
print("Count is:", count)
count += 1
else:
print("Цикл завершен")
Объяснение:
count < 5
.else
.Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
Цикл завершен
Пример 6: Инструкция break
и блок else
count = 0
while count < 5:
print("Count is:", count)
count += 1
if count == 3:
break
else:
print("Цикл завершен")
Объяснение:
count
достигнет 3
из-за инструкции break
.else
не выполнится, так как цикл был прерван.Результат:
Count is: 0
Count is: 1
Count is: 2
while
Циклы while
могут быть вложенными друг в друга. Это означает, что один цикл может находиться внутри другого, и оба цикла будут выполняться по своим условиям.
Пример 7: Вложенные циклы while
i = 1
while i <= 3:
j = 1
while j <= 3:
print(f"i = {i}, j = {j}")
j += 1
i += 1
Объяснение:
i
выполняется трижды.j
выполняется трижды на каждую итерацию внешнего цикла.Результат:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
Задача 1: Поиск простых чисел в заданном диапазоне
Простое число — это число больше 1, которое делится только на 1 и само на себя. Давайте напишем программу, которая найдет все простые числа в диапазоне от 2 до 50, используя цикл while
, break
и else
.
n = 2
while n <= 50:
is_prime = True
i = 2
while i <= n // 2:
if n % i == 0:
is_prime = False
break
i += 1
if is_prime:
print(n)
n += 1
Объяснение:
n
перебирает числа от 2 до 50.i
проверяет, делится ли n
на какое-либо число от 2 до n // 2
.n
делится на i
, оно не является простым, и цикл прерывается (break
).Результат:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
Задача 2: Игра "Угадай число"
Напишем программу, которая загадывает случайное число от 1 до 100, и предлагает пользователю его угадать. Программа подсказывает, больше или меньше введенное число по сравнению с загаданным, и завершает игру, когда число угадано.
import random
secret_number = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("Угадайте число от 1 до 100: "))
attempts += 1
if guess < secret_number:
print("Загаданное число больше.")
elif guess > secret_number:
print("Загаданное число меньше.")
else:
print(f"Поздравляю! Вы угадали число за {attempts} попыток.")
break
Объяснение:
break
), и программа сообщает количество попыток.Цикл while
является мощным инструментом для создания программ, которые выполняют повторяющиеся действия до достижения определенного условия. Инструкции break
, continue
и else
предоставляют дополнительные возможности для управления потоком выполнения программы, делая код более гибким и адаптируемым. Понимание того, как правильно использовать эти конструкции, позволит вам писать более эффективные и понятные программы.