К счастью, в Python все гораздо удобнее. В этом языке есть множество приемов, позволяющих писать более элегантные циклы, которые облегчают нам жизнь. В Python мы также можем избежать вложенных циклов и вспомогательных переменных, и мы даже можем настроить цикл под себя.
Кортеж
Предположим, у нас есть кортеж строк. Мы хотим преобразовать их все в нижний регистр. Мы можем написать для этого вспомогательную функцию и использовать цикл for для перебора элементов кортежа.
def to_lower_case(my_tuple): temp_list = for item in my_tuple: temp_list.append(str(item).lower()) return tuple(temp_list) fruits = ('Apple', 'Orange', 'BANANA') fruits_new = to_lower_case(fruits) print(fruits_new)
печать: (‘Яблоко’, ‘Апельсин’, ‘Банан’)
Примечания. Мы используем список для добавления элементов в цикл, потому что кортеж неизменяем.
Вывод набора
Вот простой пример печати элементов ансамбля.
set_cities = set() set_cities.add('New York') set_cities.add('New Delhi') set_cities.add('Bangalore') set_cities.add('London') set_cities.add('Bangalore') # дублирующая запись, будет удалена из набора for city in set_cities: print(city)
Примечание. В Python множество — это неупорядоченная последовательность. Поэтому при каждом запуске программы вывод может быть разным.
Словарь
Словарь Python не является последовательностью. Поэтому мы не можем прямо перечислить его элементы. Однако у него есть метод items(), который возвращает аналогичную последовательность элементов. Мы можем использовать этот метод для поиска записей в словаре.
my_dict = for k, v in my_dict.items(): print(f'key=, value=')
Цикл for с использованием функции range()
Функция range() используется для создания последовательности чисел. Если мы передадим range(10), будут созданы числа от 0 до 9. Синтаксис функции range() приведен ниже.
диапазон(старт,стоп,инкремент)
- Начало представляет собой начало итерации.
- Остановка означает, что цикл будет повторяться до остановки-1. Диапазон(1,5) будет генерировать числа от 1 до 4 итераций. Это необязательно.
- Размер шага используется для пропуска определенных чисел из итерации. Использовать необязательно. По умолчанию размер шага равен 1, но это необязательно.
Давайте рассмотрим следующие примеры:
Пример-1: Программа для последовательной печати чисел.
For i in range(10): print(i,end = ' ')
0 1 2 3 4 5 6 7 8 9
Пример-2: Программа для печати таблицы с определенным числом.
n = int(input("Enter the number ")) for i in range(1,11): c = n*i print(n,"*",i," EnlighterJSRAW" data-enlighter-language="python">Введите число 10 * 1 = 10 10 * 2 = 20 10 * 3 = 30 10 * 4 = 40 10 * 5 = 50 10 * 6 = 60 10 * 7 = 70 10 * 8 = 80 10 * 9 = 90 10 * 10 = 100
Пример-3: Программа для печати четного числа с использованием инкремента в range().
n = int(input("Введите число ")) for i in range(2,n,2): print(i)
Введите число 20 2 2 4 6 8 10 12 14 16 18
Мы также можем использовать range() с последовательностью чисел. Функция len() сочетается с range(), которая проходит через последовательность, используя индексацию. Рассмотрим следующий пример.
list = 'Peter', 'Joseph', 'Ricky', 'Devansh' for i in range(len(list)): print('Hello',listi)
Здравствуйте Питер Здравствуйте Джозеф Здравствуйте Рики Здравствуйте Деванш
Вложенный цикл for в Python
Python позволяет нам вставлять любое количество циклов for в цикл for. Внутренний цикл выполняется n раз за каждую итерацию внешнего цикла. Синтаксис приведен ниже.
for iterating_var1 in sequence: #outer loop for iterating_var2 in sequence: #inner loop #block of statements #Other statements
Пример — 1: Вложенный цикл for.
# ввод пользователем количества строк rows = int(input("Введите строки:")) # Внешний цикл печатает количество строк для i в range(0,rows+1): # Внутренний цикл печатает количество строк для j в range(i): print("*",end = '') print()
Введите строки:5 * * * *** **** *****
Пример 2: Программа арифметической пирамиды.
rows = int(input("Введите строки")) for i in range(0,rows+1): for j in range(i): print(i,end = '') print()
1 22 333 4444 55555
Использование оператора else с циклом for
В отличие от других языков, таких как C, C++ или Java, в Python мы можем использовать оператор else с циклом for, который не может быть выполнен до завершения всех итераций. Обратите внимание, что else не выполняется, если цикл содержит любой из операторов break.
for i in range(0,5): print(i) else: print("Цикл for полностью исчерпан, потому что нет прерывания.")
0 1 2 3 4 для цикла полностью исчерпан, так как нет паузы.
Цикл for полностью исчерпан, так как в нем нет прерывания.
for i in range(0,5): print(i) break; else:print("Цикл исчерпан"); print("Цикл был прерван командой прерывания.").
В приведенном примере цикл прерывается командой break, поэтому команда else не выполняется. Выполняется оператор else, расположенный рядом с блоком else.
Цикл прерывается, потому что оператор break … вышел из цикла. В следующем уроке мы узнаем больше об операторе break.
Цикл while
Цикл while также используется для повторения частей кода, но вместо того, чтобы повторяться n раз, он выполняется до тех пор, пока не будет достигнуто определенное условие. Давайте рассмотрим простой пример:
Цикл while является разновидностью условного оператора. Вот что означает этот код: До тех пор, пока переменная i меньше единицы, это должно происходить. Затем, в конце, мы увеличиваем его на единицу. Когда вы запускаете этот код, выводятся цифры от 0 до 9, каждая цифра на своей строке, после чего задание выполняется. Если удалить ту часть, где мы увеличиваем значение i, мы получим бесконечный цикл. Обычно это плохо. Бесконечные циклы известны как логические ошибки, и их следует избегать. Есть еще один способ выйти из цикла — использовать встроенную функцию break. Давайте посмотрим, как это работает:
В этой части кода мы добавили условное выражение, чтобы проверить, равна ли переменная i числу 5. Если нет, мы прерываем цикл. Как видно из вывода кода, код останавливается, как только значение достигает 5, хотя ранее мы сказали while продолжать цикл, пока переменная не достигнет значения 10. Обратите внимание, что мы изменили способ увеличения значения с помощью +=. Это удобное сокращение, которое можно использовать и для других операций, например, -= вычитание и *= умножение. Встроенное прерывание также известно как устройство управления потоком. Есть еще одна функция, continue, которая в основном используется для пропуска итерации или перехода к следующей итерации. Вот один из способов его использования:
Немного запутано, не так ли? Мы добавили второе условное выражение, которое проверяет, равно ли i трем. Если да, то переменная увеличивается, и начинается следующий цикл, успешно пропуская вывод 3 на экран. Как и раньше, мы останавливаем цикл, когда достигаем значения 5. Есть еще один вопрос, связанный с циклом, который необходимо рассмотреть: оператор else.
Зачем нужен else при работе с циклами?
Оператор else в циклах выполняется только в случае успешного завершения цикла. Основная цель оператора else — поиск объектов:
В этом коде мы прервали цикл, когда i стало равно 3. Это приводит к тому, что оператор else будет пропущен. Если вы хотите провести эксперимент, вы можете изменить условное выражение, чтобы проверить значение вне списка, что приведет к выполнению оператора else. Честно говоря, за все годы моей работы я ни разу не видел, чтобы кто-то использовал эту структуру. Большинство примеров, которые я видел, принадлежат блоггерам, которые пытаются объяснить, как это работает. Я видел, как некоторые люди используют эту структуру, чтобы вызвать ошибку, когда объект в цикле не найден. Вы можете прочитать статью, где это описано очень подробно. Статья была написана одним из самых важных разработчиков Python.
Подведем итоги
Надеюсь, к этому моменту вы уже осознали важность циклов в Python. Они делают итерацию очень простой и понятной. С циклом for вы будете сталкиваться гораздо чаще, чем с циклом while. Если вы все еще не понимаете, как это работает, я рекомендую вам прочитать эту статью еще раз, прежде чем продолжить.
Я являюсь администратором нескольких порталов для изучения языков программирования Python, Golang и Kotlin. В составе небольшой группы единомышленников мы работаем над популяризацией языков программирования для русскоязычной аудитории. Мы переводим большинство статей на русский язык и распространяем их бесплатно.
E-mail: [email protected]
Образование Технический университет Молдовы ( utm.md )
- 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы « Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация « Идентификация человека в киберпространстве по фотографии лица»
Цикл while
Цикл while хорошо подходит для итерации фрагментов кода. Здесь цикл выполняется не n раз, а n раз, пока не будет выполнено определенное условие.
Это пример цикла while в Python:
i=0в то время какi10:вывести(i)i=i+1Цикл while по сути является вложенным условным оператором. Если это цикл выше, то переменная i будет выводиться до тех пор, пока она меньше десяти. То есть, если вы запустите этот код в Python, вы получите список от 0 до 9, сформированный в прямом, а не в обратном порядке, и каждая цифра будет выведена на отдельной строке, а цикл завершится.
Однако если удалить часть кода, которая увеличивает значение i, то получится бесконечный цикл, а это плохо. Бесконечные циклы называются логическими ошибками, и их лучше избегать. Но это не значит, что вы не можете "избежать" цикла в этом случае. Мы можем, если используем вложенные функции в Python, например, разбить :
в то время какi10:вывести(i)ifi==5:перерывi+=1Вы можете узнать больше о циклах Python в наших уроках. Изучайте циклы, списки, функции, классы и другие тонкости Python вместе с OTUS!