Продолжая тему списков. В языке программирования Python есть такое понятие как срезы. Если простыми словами, то мы говорим программе дай мне элементы из списка от индекса 2 до 5, то есть если у нас список состоит из 6 элементов [1, 2, 3, 4, 5, 6, 7] , то нам вернётся список с значениями [3, 4, 5]. Программа вернётся нам вернёт данные строго до 5 индекса.
Чтобы воспользоваться срезом применяется следующий синтаксис
something_list = [1, 2, 3, 4]
print(something_list[1:3])
Вывод: [2, 3]
Дополнительная информация по спискам
С основами списка мы разобрались, теперь самое интересное. Появляется вопрос А как пройтись по спику так, чтобы не писать каждый раз руками название переменной списка и указывать индекс? на такой случай в программирование придумали циклы. О них мы сейчас и поговорим.
Циклы
Цикл - это многократное использование набора инструкций.
В Python, как и в другом языке программирования есть цикл for и while.
Если мы работаем с циклом for, то мы всегда знаем: количество элементов и количество повторений.
Если мы работаем с циклом while, то мы знаем только условие выхода из цикла.
Если у нас есть 2 вида циклов, то возникает вопрос А какой цикл и когда использовать? Тут всё очень просто, если у нас есть код, который должен выполняться при определённых условия, то можно смело использовать цикл while, а если мы знаем, что мы перебираем индекс, элементы, а так же знаем количество повторений, то нужно использовать цикл for.
Давайте разберём несколько примеров с циклом while.
Мы хотим, чтобы выполнялись определённые действия внутри цикла, то есть наш цикл должен быть либо бесконечным или выполняться пока условие действует.
# Переменная типа int
iteration = 0
# Условия цикла, при котором он будет выполняться
while iteration <= 5:
# Тело цикла
print(str(iteration))
iteration += 1
Как видно на примере мы добавили переменную-счетчик iteration, которая будет увеличиваться на 1 при каждом проходе цикла.
Реализуем бесконечный цикл и добавим в него условие при котором мы выйдем из него используя метод input который изучили ранее.
# Создаем логическую переменную и указываем значение true
work = True
# Условия цикла, при котором он будет выполняться
while work:
# Читаем, что ввёл пользователь
answer = input()
# Проверяем, что было введено стоп слово
if answer == 'стоп':
print("Выходим из цикла")
break
# Иначе продолжаем выполнение цикла
else:
print("Пользователь ничего не ввёл")
Консоль:
Пользователь ничего не ввёл
Консоль: стоп
Выходим из цикла
На этих двух примерах можно увидеть, что цикл while не очень удобен, если нам нужно работать с списками, потому что нам нужно будет придумывать как мы будем получать из этого списка данные.
Давайте теперь разберём несколько примеров с циклом for.
У нас есть список, который хранит в себе слова и мы хотим сначала напечатать этот список в консоль, а заетм напечатать только те элементы списка, который содержать определённую букву.
# Список слов
something_list = ["нитка", "вилка", "нота", "рукав", "воронка"]
# Выводим список в консоль
print(something_list)
Вывод: ['нитка', 'вилка', 'нота', 'рукав', 'воронка']
# Запускаем цикл по списку и выводим в консоль только те слова которые содержат букву "в"
for el in something_list:
if el.__contains__("в"):
# Выводим подходящий нам элемент из списка
print(el)
Вывод: вилка рукав воронка
Так же мы можем запустить цикл перечисляя индексы списка используя метод len (от английского слова length) и range чтобы задать диапазон шага.
# Список слов
something_list = ["нитка", "вилка", "нота", "рукав", "воронка"]
# Запускаем цикл по индексам списка
for index in range(len(something_list)):
el = something_list[index]
print(f"Индекс элемента: {index}, элемент: {el}")
Как вы видите, работа с цикла не сложная и каждый вид цикла подходит под свои задачи.
На этом все, свои вопросы пишите в комментариях.
Дополнительная информация по работе с циклами.
Другие статьи канала: