Циклы позволяют выполнять один и тот же блок кода многократно. Это мощный инструмент программирования, который помогает автоматизировать повторяющиеся задачи.
Циклы позволяют избежать дублирования кода и делают программы более компактными и эффективными. Вместо того чтобы писать один и тот же код десятки раз, можно использовать цикл.
Цикл while выполняет блок кода до тех пор, пока условие истинно.
while условие:
# блок кода, выполняемый пока условие истинно
операторы
счетчик = 1
while счетчик <= 5:
print(f"Итерация номер {счетчик}")
счетчик += 1
print("Цикл завершен")
Цикл for используется для перебора элементов последовательности (списка, строки, диапазона и т.д.).
for переменная in последовательность:
# блок кода, выполняемый для каждого элемента
операторы
# Перебор элементов списка
фрукты = ["яблоко", "банан", "апельсин"]
for фрукт in фрукты:
print(f"Я люблю {фрукт}")
# Перебор символов строки
слово = "Python"
for буква in слово:
print(буква)
# Использование range() для создания диапазона чисел
for i in range(5):
print(f"Число: {i}")
Функция range() создает последовательность чисел, которую часто используют в циклах for.
# range(stop) - от 0 до stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop) - от start до stop-1
for i in range(2, 7):
print(i) # 2, 3, 4, 5, 6
# range(start, stop, step) - с шагом step
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# Обратный порядок
for i in range(5, 0, -1):
print(i) # 5, 4, 3, 2, 1
Циклы можно вкладывать друг в друга для создания более сложных структур.
# Вывод таблицы умножения
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} * {j} = {i * j}")
print("---")
В Python можно использовать блок else с циклами. Он выполняется, если цикл завершился естественным образом (не через break).
# else с for
for i in range(3):
print(i)
else:
print("Цикл завершен")
# else с while
счетчик = 0
while счетчик < 3:
print(счетчик)
счетчик += 1
else:
print("Цикл завершен")
Полезные функции для работы с циклами:
# enumerate() - получение индекса и значения
фрукты = ["яблоко", "банан", "апельсин"]
for индекс, фрукт in enumerate(фрукты):
print(f"{индекс}: {фрукт}")
# zip() - одновременная итерация по нескольким последовательностям
имена = ["Анна", "Петр", "Мария"]
возраста = [25, 30, 28]
for имя, возраст in zip(имена, возраста):
print(f"{имя} - {возраст} лет")
Задание 1:
for число in range(2, 21, 2):
print(число)
# Альтернативное решение:
# for число in range(1, 21):
# if число % 2 == 0:
# print(число)
Задание 2:
число = int(input("Введите число: "))
факториал = 1
for i in range(1, число + 1):
факториал *= i
print(f"Факториал {число} = {факториал}")
Задание 3:
сумма = 0
for число in range(1, 101):
сумма += число
print(f"Сумма чисел от 1 до 100 = {сумма}")
Задание 4:
число = 7
for i in range(1, 11):
print(f"{число} * {i} = {число * i}")