Python - Циклы: Ваш шлюз к эффективному программированию

Привет, начинающие программисты! Сегодня мы погружаемся в одну из самых мощных концепций в Python: циклы. В качестве вашего дружелюбного соседа по компьютерной науке, я рад вести вас через это путешествие. Поверьте мне, как только вы освоите циклы, вы почувствуете, как если бы вы разблокировали суперсилу в программировании!

Python - Loops

Что такое циклы и почему им нужны?

Представьте себе, что вам нужно написать программу для вывода "Привет, мир!" 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