Python - Циклы: Ваш шлюз к эффективному программированию
Привет, начинающие программисты! Сегодня мы погружаемся в одну из самых мощных концепций в Python: циклы. В качестве вашего дружелюбного соседа по компьютерной науке, я рад вести вас через это путешествие. Поверьте мне, как только вы освоите циклы, вы почувствуете, как если бы вы разблокировали суперсилу в программировании!
Что такое циклы и почему им нужны?
Представьте себе, что вам нужно написать программу для вывода "Привет, мир!" 100 раз. Без циклов вам придется написать одну и ту же строку кода 100 раз! Это не только скучно, но и неэффективно. Именно здесь на помощь приходят циклы.
Циклы позволяют нам выполнять блок кода повторно. Они похожи на карусель для вашего кода, которая крутится и крутится, пока не будет выполнено определенное условие.
Флойчарт цикла
Прежде чем погружаться в код, давайте визуализируем, как работает цикл:
[Начало]
|
v
[Инициализация счетчика]
|
v
[Проверка условия]
|
[Истина] [Ложь]
| |
v v
[Выполнение кода] [Выход из цикла]
|
v
[Обновление счетчика]
|
'--------^
Этот флойчарт представляет базовую структуру большинства циклов. Мы начинаем с настройки счетчика, проверяем условие, выполняем некоторый код, если условие истинно, обновляем наш счетчик, и затем снова проверяем условие. Этот цикл продолжается до тех пор, пока условие не станет ложным.
Типы циклов в Python
Python предоставляет нам два основных типа циклов: for
и while
. Давайте рассмотрим каждый из них с некоторыми интересными примерами!
1. Циклы for
Цикл for
используется, когда мы заранее знаем, сколько раз мы хотим выполнить блок кода. Это как говорить вашему коду: "Сделай это вещь X раз."
Основная синтаксис:
for item in sequence:
# код для выполнения
Пример 1: Считание овец
for sheep in range(5):
print(f"Считаю овец номер {sheep + 1}")
# Вывод:
# Считаю овец номер 1
# Считаю овец номер 2
# Считаю овец номер 3
# Считаю овец номер 4
# Считаю овец номер 5
В этом примере мы используем цикл for
для подсчета овец. Функция range(5)
создает последовательность чисел от 0 до 4, и наш цикл итерируется по каждому из этих чисел. Мы добавляем 1 к sheep
при выводе, потому что range(5)
начинается с 0, но мы хотим считать от 1.
Пример 2: Итерация по списку
fruits = ["яблоко", "банан", "черника"]
for fruit in fruits:
print(f"Мне очень нравится есть {fruit}а!")
# Вывод:
# Мне очень нравится есть яблоки!
# Мне очень нравится есть бананы!
# Мне очень нравится есть черенки!
Здесь мы итерируемся по списку фруктов. Для каждого фрукта в списке мы выводим предложение о том, как нам нравится есть этот фрукт. Обратите внимание, как Python автоматически назначает каждый элемент списка переменной fruit
в каждой итерации.
2. Циклы while
Цикл while
используется, когда мы хотим повторять блок кода до тех пор, пока определенное условие истинно. Это как говорить: "Повторяй это, пока я не скажу остановиться."
Основная синтаксис:
while condition:
# код для выполнения
Пример 3: Неугомонный официант
order_ready = False
waiting_time = 0
while not order_ready:
waiting_time += 1
print(f"Ожидание {waiting_time} минут...")
if waiting_time >= 5:
order_ready = True
print("Заказ готов!")
# Вывод:
# Ожидание 1 минут...
# Ожидание 2 минут...
# Ожидание 3 минут...
# Ожидание 4 минут...
# Ожидание 5 минут...
# Заказ готов!
В этом примере мы симулируем ожидание заказа в ресторане. Цикл продолжается до тех пор, пока order_ready
равно False
. Каждая итерация увеличивает waiting_time
на 1 минуту. Как только мы дождались 5 минут, мы устанавливаем order_ready
равным True
, что завершает цикл.
Управляющие выражения циклов Python
Иногда нам нужно больше контроля над нашими циклами. Python предоставляет нам три управляющих выражения циклов:
Выражение | Описание |
---|---|
break |
Выходит из цикла раньше |
continue |
Пропускает оставшуюся часть текущей итерации и переходит к следующей |
pass |
Ничего не делает, действует как占位符 |
Давайте посмотрим на их в действии!
Пример 4: Разорвать плохие привычки
bad_habits = ["прокрастинация", "пересып", "еврейская еда", "слишком много TV"]
days_clean = 0
for habit in bad_habits:
if habit == "еврейская еда":
print(f"Я не могу устоять перед {habit}! Разрываю стreak.")
break
days_clean += 1
print(f"Я избегаю {habit} уже {days_clean} дней!")
print(f"Всего дней с хорошими привычками: {days_clean}")
# Вывод:
# Я избегаю прокрастинации уже 1 дней!
# Я избегаю пересыпа уже 2 дней!
# Я не могу устоять перед еврейской едой! Разрываю стreak.
# Всего дней с хорошими привычками: 2
В этом примере мы используем break
, чтобы выйти из цикла, когда мы сталкиваемся с "еврейской едой". Это симулирует разрыв стreakа хороших привычек.
Пример 5: Пропуск овощей
foods = ["пицца", "брокколи", "бургер", "шпинат", "мороженое"]
print("Мама говорит, что я должен съесть все на своей тарелке, но...")
for food in foods:
if food in ["брокколи", "шпинат"]:
print(f"Ой! Я случайно уронил {food} на пол!")
continue
print(f"Вкусно! Я ем {food}!")
# Вывод:
# Мама говорит, что я должен съесть все на своей тарелке, но...
# Вкусно! Я ем пиццу!
# Ой! Я случайно уронил брокколи на пол!
# Вкусно! Я ем бургер!
# Ой! Я случайно уронил шпинат на пол!
# Вкусно! Я ем мороженое!
Здесь мы используем continue
, чтобы пропустить овощи в нашем списке продуктов. Когда мы сталкиваемся с брокколи или шпинатом, мы выводим оправдание и затем продолжаем следующую итерацию цикла.
Заключение
Поздравляю! Вы только что сделали огромный шаг в вашем путешествии по Python, освоив циклы. Помните, практика совершенства, поэтому не стесняйтесь экспериментировать с этими концепциями. Попробуйте создать свои собственные циклы, сочетайте разные типы и посмотрите, что вы сможете создать.
Циклы — это как ритм в песне — они поддерживают движение и ритм вашего кода. Так что продолжайте программировать, продолжайте использовать циклы и, что самое важное, наслаждайтесь процессом!
Счастливого кодирования, будущие мастера Python!
Credits: Image by storyset