🔄 Цикл for и функция range()
Циклы позволяют выполнять один и тот же код много раз. В Python самый популярный цикл - это for.
🏃 1. Как работает цикл for?
Цикл for перебирает элементы из последовательности (строки, списка и т.д.) и для каждого элемента выполняет блок кода.
🔹 Синтаксис:
for переменная in последовательность:
действие # Обязательный отступ!
🔹 Пример со строкой:
for letter in "Python":
print(letter)
Что происходит?
Переменная letter по очереди принимает значения: 'P', 'y', 't', 'h', 'o', 'n'.
Вывод:
P
y
t
h
o
n
🔹 Пример со списком:
fruits = ["яблоко", "банан", "груша"]
for fruit in fruits:
print(fruit)
Вывод:
яблоко
банан
груша
🔢 2. Функция range()
Чаще всего нам нужно просто повторить действие N раз или получить числа от 0 до 10. Для этого используется функция range().
🔹 1) Один аргумент - range(stop)
Генерирует числа от 0 до stop - 1.
for i in range(3):
print(f"Повторение номер {i}")
Вывод:
Повторение номер 0
Повторение номер 1
Повторение номер 2
⚠️Обратите внимание: счет начинается с нуля, а число 3 не включается!
🔹 2) Два аргумента - range(start, stop)
Генерирует числа от start до stop - 1.
for k in range(5, 8):
print(k)
Вывод:
5
6
7
🔹 3) Три аргумента - range(start, stop, step)
Генерирует числа с определенным шагом (step).
# Четные числа от 2 до 10 c шагом +2
for n in range(2, 11, 2):
print(n)
Вывод:
2
4
6
8
10
📉 Обратный отсчет
Чтобы идти назад, шаг должен быть отрицательным:
for i in range(5, 0, -1):
print(i)
print("Пуск! 🚀")
📝 Пример работы range()
| Команда | Диапазон чисел | Пример значений |
|---|---|---|
range(5) |
от 0 до 4 | 0, 1, 2, 3, 4 |
range(1, 4) |
от 1 до 3 | 1, 2, 3 |
range(0, 10, 3) |
шаг +3 | 0, 3, 6, 9 |
range(5, 1, -1) |
от 5 до 2 | 5, 4, 3, 2 |
🛑 3. Оператор break
break мгновенно завершает цикл.
🔹 Пример: остановка на пробеле
text = "Hello World"
for char in text:
if char == " ":
print("Нашли пробел, останавливаемся!")
break # Мгновенный выход из цикла
print(char)
Вывод:
H
e
l
l
o
Нашли пробел, останавливаемся!
⏭️ 4. Оператор continue
Если нужно пропустить текущий шаг и перейти к следующему, используем continue.
🔹 Пример: печать только нечетных чисел
for i in range(1, 6):
if i % 2 == 0: # Если число четное
continue # Пропускаем его
print(i)
Вывод:
1
3
5
🧠 Задачка для закрепления
Посчитаем сумму чисел от 1 до 5:
total = 0
for i in range(1, 6):
total = total + i # или total += i
print(f"Сумма: {total}") # 1+2+3+4+5 = 15
🧩 5. else после for
Блок else после for выполняется, если цикл завершился "нормально", то есть дошёл до конца и не был прерван командой break. Это удобно для задач “поиск элемента”: нашли - break, не нашли - сработает else.
for i in range(5):
print(i)
else:
print("Цикл завершён без break")
🧾 Вывод:
0
1
2
3
4
Цикл завершён без break
✅ else срабатывает, если цикл завершился полностью, без break.
❌ Пример с break:
for i in range(5):
if i == 3:
break
print(i)
else:
print("Не сработает!")
🧾 Вывод:
0
1
2
⛔ else не выполнился, потому что был break.
🎓 Задания
🧪 1) Поиск числа в списке
Дан список целых чисел:
numbers = [1, 3, 4, 5, 7, 9]
Необходимо проверить, содержится ли в этом списке число 4.
- Если число найдено - вывести сообщение
Найдено! - Если число отсутствует - вывести сообщение
Число не найдено
Пример вывода:
Найдено!
📌 Подсказка: перебор элементов списка нужно выполнять с помощью цикла.
Решение:
numbers = [1, 3, 5, 7, 9]
for n in numbers:
if n == 4:
print("Найдено!")
break
else:
print("Число не найдено")
🧪 2) Подсчёт гласных букв
Дана строка:
text = "hello world"
Необходимо подсчитать, сколько гласных букв содержится в этой строке.
После подсчёта выведите количество гласных букв на экран.
Пример вывода:
Гласных: 3
📌 Подсказка: строку можно перебирать посимвольно с помощью цикла.
Решение:
text = "hello world"
vowels = "aeiou"
count = 0
for letter in text:
if letter in vowels:
count += 1
print("Гласных:", count)
🧪 3) Поиск числа, кратного 7
Программа должна перебирать числа от 1 до 20 по порядку.
Во время работы программы необходимо:
- выводить каждое число на экран
-
если встретилось число, кратное 7:
- вывести сообщение
Нашли 7! - прервать выполнение цикла
- вывести сообщение
-
если цикл завершился полностью и число, кратное 7, так и не встретилось:
- вывести сообщение
Цикл завершён, 7 не нашли
- вывести сообщение
Пример вывода:
1
2
3
4
5
6
Нашли 7!
Решение:
for i in range(1, 21):
if i % 7 == 0:
print("Нашли 7!")
break
print(i)
else:
print("Цикл завершён, 7 не нашли")