Цикл for в Python
Циклы являются неотъемлемой частью в любом языке программирования. Для чего нужны циклы? Представьте себе задачу в которой вам необходимо перебрать элементы в списке, определить какое то соответствие и вывести результат. Здача является простой, если у вас немного элементов, а что если у вас тысячу разных элементов? В данном случае, мы с вами можем организовать цикл, в котором будем перебирать элементы, проводить с каждым элементом нужные нам операции, и выводить результат, вся муторная работа будет выполнена за вас вашим скриптом. И так долой теорию, разберем принцип работы цикла на практике.
Представим себе, что у нас есть список, с именами животных.
animals = ['Кошка', 'Собака', 'Лошадь', 'Черепаха'] for animal in animals: print("Привет " + animal) Результат: Привет Кошка Привет Собака Привет Лошадь Привет Черепаха
Как видите у нас получилось в несколько строк реализовать перебор всех элементов внутри списка на автомате. То есть, вся логика в цикле for заключается в том, что мы перебираем значения внутри списка, словаря, кортежа или множества, проводим нужную операцию, и выводим результат. Для более четкого понимания, просмотрите анимацию, в которой довольно доступно, и просто показаны разные варианты цикла. Важно запомнить! После запуска цикла, не забывайте про отступы.
Функция range
В целом мы с вами разобрались с тем, как работает цикл for, вместе с ней довольно часто используется функция range. С помощью данной функции, мы можем генерировать числа, например:
print (list(range(10))) # Сгенерирует нам числа от 0 до 9(10 чисел)
Функция range(), позволяет нам генерировать числа не только в строгой последовательности, мы можем задать начало, конец, и шаг генерации, выглядит это так:
print(list(range(2,50, 4))) # от 2-х до 50 с шагом 4 Результат: [2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46]
Если мы не задаем шаг, то в Python этот шаг по умолчанию равен 1. Так же мы можем конечно использовать данную функцию вместе с циклом for. Пример:
for i in range(20): # При каждой итерации цикла, в переменную i попадает сгенерированное числа от 0 до 19. if i >= 10: # При каждой итерации сравнивание наше в i с нашим условием print(i) # Если число находящееся в данной итерации соответствует нашему условию, отправляем его в печать """ То есть, при первом проходе цикла, переменная i равна 0, соответственно 0 не является большим или равным 10 поэтому он не печатается. При втором проходе цикла, i равен уже 1, но 1 тоже не подходит под наше условие, поэтому его тоже пропускаем. Через некоторое время, цикл доходит например до 11ой итерации, и в этом проходе, наша переменная уже равно 10 что подходит нашему условию, и соответственно мы его пропускаем дальше. """ Результат: 10 11 12 13 14 15 16 17 18 19
В цикле выше, мы свами рассмотрели сразу два момента, это использование функции range(), и условие if, думаю вам уже понятно, что внутри цикла мы можем создавать уже знакомые нам конструкции с условиями. Рассмотрим пример, в котором мы скомбинируем цикл for, список, и конструкцию if…else.
student_name = 'Тимур' # Имя студента student_list = ['Саша','Таня','Настя','Тимур', 'Вадим'] # Список студентов for student in student_list: # Перебираем список студентов, и на каждом проходе цикла поочередно заносим всех студентов в переменную student if student == student_name: # если значение student == student_name print(f' Студент {student_name} найден.') # Условие выполнено break # Остановка цикла else: print(f' Студент {student_name} не найден.') # Результат, если условие не выполнено Результат: Студент Тимур найден.
Как вы уже могли заметить, мы использовали оператор break, данный оператор позволяет нам остановить цикл, если например выполнено условие нашего цикла. В данном примере, мы нашли нужного студента, и нам незачем продолжать его поиск, поэтому мы просто останавливаем цикл, выходим из него, и выводим результат.
Сегодня мы с вами прошли довольно важную тему, поэтому советую вам немного расслабиться, и посмотреть нарезки лучших моментов с мультсериала Рик и Морти.