Циклы while: управление повторениями в Python
Цикл while: основы и синтаксис
Цикл while выполняет блок кода, пока условие истинно. Это основная конструкция для повторения действий с проверкой перед каждой итерацией.
count = 0
while count < 5:
print(f"Итерация {count}")
count += 1
оператор case в python (оператор case (match) в python)
Итерация 0
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Match case python (конструкция match-case в python)
На каждом шаге проверяется count < 5. Как только значение достигает 5, цикл завершается. count += 1 обязательно обновляет переменную, иначе цикл станет бесконечным.
Типичная ошибка: забыть изменить счётчик внутри цикла. Программа зависнет.
Решение: всегда предусматривать изменение переменной, влияющей на условие.
Как прервать цикл досрочно с помощью break?
Оператор break немедленно выходит из цикла, игнорируя условие.
i = 0
while i < 10:
if i == 5:
break
print(i)
i += 1
операторы ветвления в языке python (условные операторы в python)
0
1
2
3
4
Return s s python (оператор return в python)
Цикл прервался, когда i стало 5. Оставшиеся итерации не выполняются.
Ошибка: использование break без понимания логики может привести к пропуску важных действий.
Как пропустить часть итерации с помощью continue?
continue прерывает текущую итерацию и переходит к следующей проверке условия.
n = 0
while n < 10:
n += 1
if n % 2 == 0:
continue
print(n)
оператор выбора в python (оператор выбора if в python)
1
3
5
7
9
Python пустая команда (пустая команда pass в python)
Чётные числа пропускаются, цикл продолжает работу.
Если забыть обновить счётчик до continue, цикл может зациклиться.
Что такое блок else в цикле while?
Блок else выполняется, если цикл завершился естественным образом (без break).
num = 0
while num < 3:
print(num)
num += 1
else:
print("Цикл завершён по условию")
как на языке python записывается полное ветвление (полное ветвление в python)
0
1
2
Цикл завершён по условию
циклы в python примеры (примеры циклов в python)
Если бы был break, else не сработал бы. Это удобно для поиска элементов.
Путаница: else срабатывает, даже если тело цикла не выполнялось ни разу (условие сразу False).
Как создать вечный цикл с выходом по условию?
Конструкция while True создаёт бесконечный цикл, который прерывается только через break.
while True:
cmd = input("Введите команду (exit для выхода): ")
if cmd.lower() == "exit":
break
print(f"Выполняю: {cmd}")
программа с циклом while python (программа с циклом while на python)
Введите команду (exit для выхода): start
Выполняю: start
Введите команду (exit для выхода): exit
For и while python в чем разница (разница между циклами for и while в python)
Подходит для интерактивных программ, когда количество итераций неизвестно заранее.
Опасность: если забыть break, программа будет работать бесконечно.
Как использовать несколько условий в while?
Можно комбинировать условия логическими операторами and, or, not.
a, b = 0, 10
while a < 5 and b > 5:
print(f"a={a}, b={b}")
a += 1
b -= 1
Python if then else (условный оператор if then else в python)
a=0, b=10
a=1, b=9
a=2, b=8
a=3, b=7
a=4, b=6
Цикл выполняется, пока оба условия истинны.
Сложные условия могут ухудшить читаемость. Лучше выносить логику в отдельную функцию.
Расширенные примеры использования цикла while
# Пример 1: Чтение строк из файла до конца
with open("data.txt", "r") as f:
line = f.readline()
while line:
print(line.strip())
line = f.readline()
else:
print("Файл прочитан полностью")
Первая строка Вторая строка ... Файл прочитан полностью
Цикл продолжается, пока readline() возвращает непустую строку. Блок else выполняется после выхода по условию.
# Пример 2: Игровой цикл с условием победы
lives = 3
score = 0
while lives > 0:
print(f"Жизней: {lives}, Очки: {score}")
action = input("Нажми w (успех) или l (проигрыш): ")
if action == 'w':
score += 10
elif action == 'l':
lives -= 1
else:
print("Неверная команда")
print("Игра окончена")
Жизней: 3, Очки: 0 Нажми w (успех) или l (проигрыш): w Жизней: 3, Очки: 10 Нажми w (успех) или l (проигрыш): l Жизней: 2, Очки: 10 ... Игра окончена
Цикл проверяет количество жизней после каждого действия.
# Пример 3: Числа Фибоначчи до предела
limit = 50
a, b = 0, 1
while a <= limit:
print(a, end=' ')
a, b = b, a + b
0 1 1 2 3 5 8 13 21 34
Здесь while проверяет значение a, а вычисление следующего числа происходит в конце итерации.
# Пример 4: Обработка ввода с проверкой
while True:
user_input = input("Введите положительное число: ")
try:
number = float(user_input)
if number > 0:
print(f"Квадрат числа: {number**2}")
break
else:
print("Число должно быть положительным")
except ValueError:
print("Это не число, попробуйте снова")
Введите положительное число: -5 Число должно быть положительным Введите положительное число: abc Это не число, попробуйте снова Введите положительное число: 4 Квадрат числа: 16.0
Бесконечный цикл с обработкой ошибок и проверкой условия внутри.
# Пример 5: Вложенные циклы while для матрицы
matrix = [
[1, 2, 3],
[4, 5, 6]
]
i = 0
while i < len(matrix):
j = 0
while j < len(matrix[i]):
print(f"matrix[{i}][{j}] = {matrix[i][j]}")
j += 1
i += 1
matrix[0][0] = 1 matrix[0][1] = 2 matrix[0][2] = 3 matrix[1][0] = 4 matrix[1][1] = 5 matrix[1][2] = 6
Внешний цикл перебирает строки, внутренний - столбцы. Важно не перепутать счётчики.
# Пример 6: Цикл с задержкой (time.sleep)
import time
seconds = 5
while seconds > 0:
print(f"Осталось {seconds} секунд")
time.sleep(1)
seconds -= 1
print("Время вышло!")
Осталось 5 секунд Осталось 4 секунд ... Осталось 1 секунд Время вышло!
Используется для таймеров или ожидания между итерациями.