Python - Петли и массивы

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

Python - Loop Arrays

Что такое массивы в Python?

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

fruits = ["яблоко", "банан", "черри", "дата"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "два", 3.0, [4, 5]]

Теперь, когда это у нас на месте, давайте рассмотрим, как мы можем пройтись по этих массивам с помощью петли!

Python for Loop с массивом

Петля for — ваш надежный спутник, когда дело доходит до итерации по массивам. Это как иметь личного ассистента, который проходит по каждому элементу в вашем списке, один за другим. Давайте посмотрим, как это работает:

fruits = ["яблоко", "банан", "черри", "дата"]

for fruit in fruits:
print(f"Мне очень нравится есть {fruit}!")

Вывод:

Мне очень нравится есть яблоко!
Мне очень нравится есть банан!
Мне очень нравится есть черри!
Мне очень нравится есть дата!

В этом примере наша петля for похожа на робота-любителя ягод. Он поднимает каждое фруктовое из списка fruits и выражает свою любовь к их потреблению. Петля продолжается до тех пор, пока не пройдется по всем элементам списка.

Реальный мир аналогии

Представьте себе, что вы находитесь на буфете (ум!). Петля for похожа на то, как вы идете по линии буфета, беря каждое блюдо по очереди. Вы не пропускаете ни одного блюда и останавливаетесь, когда доходите до конца линии. Вот так и работает наша петля for с массивами!

Python while Loop с массивом

Теперь познакомимся с петлей while. Если петля for похожа на робота, методично проходящего по списку, то петля while больше похожа на упорчивого покупателя, который продолжает покупать товары до тех пор, пока его список покупок не опустеет. Давайте посмотрим, как мы можем использовать петлю while с массивом:

fruits = ["яблоко", "банан", "черри", "дата"]
index = 0

while index < len(fruits):
print(f"Фрукт с индексом {index} — это {fruits[index]}")
index += 1

Вывод:

Фрукт с индексом 0 — это яблоко
Фрукт с индексом 1 — это банан
Фрукт с индексом 2 — это черри
Фрукт с индексом 3 — это дата

В этом примере мы начинаем с index равного 0. Петля while продолжается до тех пор, пока index меньше длины нашего списка fruits. Каждый раз при проходе через петлю мы выводим фрукт с текущим индексом и увеличиваем индекс на 1.

Когда использовать петли while

Петли while отлично подходят, когда вы не знаете точно, сколько раз вам нужно выполнить цикл. Например, если вы читаете данные из файла или ждете ввода пользователя, петля while может быть очень полезной. Однако для простой итерации по массиву обычно петля for более чистая и легко читаемая.

Python for Loop с индексом массива

Иногда вам нужно знать не только элемент массива, но и его позицию (или индекс). В этом помогает функция enumerate(). Это как иметь гида, который не только показывает вам каждый элемент, но и точно сообщает, где вы находитесь на экскурсии. Давайте посмотрим, как это работает:

fruits = ["яблоко", "банан", "черри", "дата"]

for index, fruit in enumerate(fruits):
print(f"Фрукт номер {index + 1} — это {fruit}")

Вывод:

Фрукт номер 1 — это яблоко
Фрукт номер 2 — это банан
Фрукт номер 3 — это черри
Фрукт номер 4 — это дата

В этом примере enumerate() дает нам как индекс, так и элемент для каждого элемента списка. Мы добавляем 1 к индексу при выводе, потому что индексы массивов начинаются с 0, а люди обычно начинают считать с 1.

Более сложный пример

Давайте проверим наши знания с немного более сложным примером. Мы создадим список словарей, представляющих книги, и затем пройдемся по нему, чтобы найти книги определенного автора:

books = [
{"title": "Убить пернатую", "author": "Харпер Ли", "year": 1960},
{"title": "1984", "author": "Джордж Оруэлл", "year": 1949},
{"title": "Гордость и предубеждение", "author": "Джейн Остин", "year": 1813},
{"title": "Сельская ферма", "author": "Джордж Оруэлл", "year": 1945}
]

author_to_find = "Джордж Оруэлл"

print(f"Книги {author_to_find}:")
for index, book in enumerate(books):
if book["author"] == author_to_find:
print(f"{index + 1}. {book['title']} ({book['year']})")

Вывод:

Книги Джордж Оруэлл:
2. 1984 (1949)
4. Сельская ферма (1945)

В этом примере мы используем петлю for с enumerate(), чтобы пройти по нашему списку словарей с книгами. Мы проверяем каждую книгу на автора, и если он совпадает с тем, кого мы ищем, мы выводим детали книги.

Заключение

Поздравляем! Вы только что повысили свои навыки Python, освоив петли с массивами. Помните, что практика совершенства. Не стесняйтесь экспериментировать с этими концепциями. Попробуйте создать свои собственные массивы и пройтись по ним различными способами.

Вот быстрый справочник по методам петель, которые мы рассмотрели:

Тип петли Сценарий использования Синтаксис
For Loop Когда вы хотите пройтись по всем элементам последовательности for item in sequence:
While Loop Когда вам нужно условие для управления петлей while condition:
For Loop with Index Когда вам нужны как элемент, так и его позиция for index, item in enumerate(sequence):

Продолжайте программировать, учиться и, что самое важное, наслаждайтесь Python! Кто знает? В следующий раз, когда вы будете на буфете, можете подумать о петлях for. Это когда вы поймете, что настоящий программист!

Credits: Image by storyset