что это такое, как работает, примеры
Для выполнения повторяющихся, однотипных операций в программировании используются циклы. В Python таких циклов два:
- for – счетный цикл, повторяется определенное количество раз;
- while – условный цикл, повторяется до выполнения определенного условия.
В этой статье мы разберем цикл for, а в следующей – while.
Назначение цикла for в Python
Цикл for используется в двух случаях:
- Если нужно выполнить одну операцию (или набор из нескольких различных действий) определенное количество раз.
- Если необходимо провести итерацию (перебор) элементов коллекции – списка, строки, словаря, кортежа, множества – одновременно выполняя какие-либо операции с этими элементами.
В любом из этих случаев цикл for может быть:
- простым – состоящим из одного for-цикла;
- вложенным – состоящим из двух и более for-циклов.
Кроме того, цикл может содержать:
- простые и многоуровневые условия
if… elif… else
; - оператор
break
для прерывания иcontinue
для перехода к следующей итерации.
Каждый из этих вариантов мы рассмотрим ниже.
Структура простого цикла Python for
Простой цикл for выглядит так:
for название_переменной in range(число_повторений): тело цикла
Простейший пример такого цикла:
>>> for i in range(5): print('Python') Python Python Python Python Python
Другой пример простого цикла – перебор элементов какой-либо коллекции:
for название_переменной in название_коллекции: тело цикла
Код и результат работы подобного цикла выглядят так:
>>> for i in 'Python': print(i) P y t h o n
Первая строка, открывающая цикл for
, завершается двоеточием:
. Такие двоеточия используются во многих конструкциях Python, не только в for
, и каждый раз, обнаруживая :
, интерпретатор будет ожидать индентацию (отступ) на следующей строке. Отступы в Python разделяют код на логические блоки (в других языках такое разделение происходит с помощью иных знаков – фигурных скобок, точки с запятой). В соответствии с руководством PEP8, отступ может состоять либо из
TabError: inconsistent use of tabs and spaces in indentation
Недостаток или избыток пробелов также приводят к ошибке, поскольку не дают интерпретатору определить, к какому именно логическому блоку относится фрагмент кода:
IndentationError: unindent does not match any outer indentation level
Структура вложенного цикла for
Любой цикл for может включать в себя другой for-цикл (или даже несколько):
lst1 = ['1', '2', '3', '4', '5'] lst2 = ['a', 'b', 'c', 'd', 'e'] for i in lst1: for j in lst2: print(i + j)
Во время выполнения вложенного цикла Python сначала перебирает все элементы внутреннего цикла, а затем переходит к следующему элементу внешнего цикла:
1a 1b 1c 1d 1e 2a 2b 2c 2d 2e 3a 3b 3c 3d 3e 4a 4b 4c 4d 4e 5a 5b 5c 5d 5e
Структура цикла for с условием
Для проверки соответствия переменных (элементов) каким-либо условиям в Python используется конструкция вида if… elif… else…
:
age = int(input('Сколько тебе лет? ')) if age < 7: print('В какой детсад ходишь?') elif 7 <= age <= 18: print('В какой школе учишься?') elif 18 <= age <= 23: print('Учишься в ВУЗе?') elif 60 <= age < 90 : print('Уже не работаешь?') elif age > 90: print('Долгожитель!') else: print('Где работаешь?')
st = 'abracad5bra' for i in st: if not i. а>б(о@р' for i in st: if not i.isalpha(): continue else: print(i)
Этот код пропускает все символы, которые не являются буквами. Результат:
м у т а б о р
Ввод и вывод данных с помощью цикла for в Питоне
Цикл for часто используют для ввода данных. Например, так можно ввести вложенный список (матрицу) из n строк:
n = int(input()) lst = [] for i in range(n): lst.append(list(map(int, input().split())))
А так матрицу можно вывести:
# 1-й способ вывода for i in lst: print(*i) # 2-й способ вывода for i in range(len(lst)): for j in range(len(lst)): print(lst[i][j], end=' ') print() print()
Результат вывода матрицы из 5 строк:
1 2 3 4 7 7 8 3 9 0 1 3 9 5 3 2 7 4 9 2 1 9 0 4 5
Особенности цикла for в Python
1. В цикле for может быть более одной переменной. Например, так можно вывести на экран элементы словаря:
>>> my_dict = {'цвет': 'красный', 'артикул': 'ABC123', 'цена': 650} >>> for k, v in my_dict.items(): print(f'{k} - {v}') цвет - красный артикул - ABC123 цена - 650
2. Если переменная не используется в теле цикла, вместо названия можно указывать символ подчеркивания _
:
>>> mydict = {} >>> for _ in range(int(input())): k, v = input().split(': ') mydict[k.capitalize()] = v.title() 3 жанр: ужасы, триллер название: "мизери" автор: стивен кинг >>> print(mydict) {'Жанр': 'Ужасы, Триллер', 'Название': '"Мизери"', 'Автор': 'Стивен Кинг'}
3. В цикле for можно использовать дополнительные параметры функции range() – старт
и шаг
:
>>> for i in range(1, 12, 2): print('*' * i) * *** ***** ******* ********* ***********
4. Для проверки множества условий в цикле for очень удобно использовать словарь:
ops = {'-':'a - b', '+':'a + b', '*': 'a * b', '/':'a / b'} a, b = int(input('Введите значение a: ')), int(input('Введите значение b: ')) op = input('Введите знак операции: ') if op in ops.keys(): print(eval(ops[op])) else: print('Поддерживаются операции +, -, * и /')
Без словаря код выглядел бы так:
a, b = int(input('Введите значение a: ')), int(input('Введите значение b: ')) op = input('Введите знак операции: ') if op == '-': print(a - b) elif op == '+': print(a + b) elif op == '/': print(a / b) elif op == '*': print(a * b) else: print('Поддерживаются операции +, -, * и /')
5. Несмотря на то, что во многих случаях цикл for – простой, вложенный, с условиями – можно заменить генератором или списковым включением, обычный цикл читается легче – сравните эти примеры:
Генератор:
my_dict = {s[0].lower(): s[1] for s in (input().split(': ') for _ in range(int(input())))}
Обычный цикл for:
for _ in range(int(input())): k, v = input().split(': ') my_dict[k.lower()] = v
Кроме того, решение многих задач с помощью циклов выглядит более понятным и интуитивным – сравните цикл и генератор для вычисления ряда Фибоначчи:
Цикл + кортежи:
f1, f2 = 1, 1 for i in range(int(input())): print(f1) f1, f2 = f2, f1 + f2
Генератор Фибоначчи:
fib = [1, 1] calc = [fib.append(fib[i - 1] + fib[i - 2]) for i in range(2, int(input()))] print(*fib)6. Вложенные циклы делают код для ввода и вывода матриц (вложенных списков) довольно объемным. Предположим, что нужно написать программу для ввода и вывода матрицы n x m. При n = 4 и m = 3 результат вывода выглядит так:
2 5 6 1 7 8 9 0 3 4 7 5
Сравним код ввода и вывода, написанный с применением вложенных циклов и код, реализованный с помощью генератора:
Вложенные циклы:
n, m = int(input()), int(input()) matrix = [] for i in range(n): matrix.append([]) for j in range(m): temp = input() matrix[i].append(temp) for i in range(n): for j in range(m): print(matrix[i][j], end=' ') print()
n, m = int(input()), int(input()) matrix = [[input() for word in range(m)] for _ in range(n)] [print(*i) for i in matrix]
7. Хотя генераторы и списковые включения являются, по сути, сжатой формой записи цикла, в синтаксисе циклов и генераторов есть различия. Например, в генераторax и списковыx включениях, в отличие от циклов, не используются операторы break
и continue
– вместо этого условие формулируется по-другому:
Цикл:
st = input() sp = [] for i in st: if i.isalpha(): sp.append(i) else: continue print(sp)
Генератор:
sp2 = [i for i in st if i.isalpha()] print(sp2)
8. Для параллельной итерации вместо вложенного цикла удобнее использовать простой for вместе с функцией zip():
>>> list1 = ['а', 'б', 'в', 'г', 'д'] >>> list2 = [1, 2, 3, 4, 5] >>> for i, j in zip(list1, list2): print(i + str(j)) а1 б2 в3 г4 д5
Другой способ параллельной итерации – использование индекса одного из списков. Для обращения к индексам в range() включают функцию len():
>>> lst1 = ['a', 'b', 'c', 'd', 'e'] >>> lst2 = [11, 12, 13, 14, 15] >>> for i in range(len(lst1)): print(lst1[i], lst2[i]) a 11 b 12 c 13 d 14 e 15
9. Для работы с индексами в цикле часто используется функция enumerate():
>>> my_list = ['хард-рок', 'хэви-метал', 'хип-хоп', 'рэп', 'панк-рок'] >>> for i, j in enumerate(my_list): print(i, j) 0 хард-рок 1 хэви-метал 2 хип-хоп 3 рэп 4 панк-рок
10. При решении задач в циклах часто используют счетчики. Так, например, можно подсчитать количество отрицательных чисел:
lst = [5, 6, -3, 1, 12, -2, -7, 8, 3, 2] k = 0 for i in lst: if i < 0: k += 1 print(f'Количество отрицательных чисел: {k}')
Результат:
Количество отрицательных чисел: 3
Практика
Задание 1
Напишите программу, которая получает от пользователя число n и выводит n строк с результатом умножения чисел от 1 до n на символ *.
Пример ввода:
7
Вывод:
Умножаю * на 1: * Умножаю * на 2: ** Умножаю * на 3: *** Умножаю * на 4: **** Умножаю * на 5: ***** Умножаю * на 6: ****** Умножаю * на 7: *******
Решение:
n = int(input()) for i in range(1, n + 1): print(f"Умножаю * на {i}: {'*' * i}")
Задание 2
Напишите программу, которая получает от пользователя строку целых чисел, и выводит:
- Количество положительных чисел.
- Произведение всех отрицательных чисел.
- Минимальное и максимальное числа без использования функций min() и max().
Пример ввода:
3 -5 2 4 12 7 3 4 6 9 25 -50 12 35 2 11
Вывод:
Количество положительных чисел: 14 Произведение отрицательных чисел: 250 Минимальное число: -50 Максимальное число: 35
Решение:
lst = map(int, input(). split()) pos = 0 neg_prod = 1 min_num = 0 max_num = 0 for i in lst: if i > 0: pos += 1 elif i < 0: neg_prod *= i if i < min_num: min_num = i elif i > max_num: max_num = i print(f'Количество положительных чисел: {pos}') print(f'Произведение отрицательных чисел: {neg_prod}') print(f'Минимальное число: {min_num}') print(f'Максимальное число: {max_num}')
Задание 3
Напишите программу, которая создает вложенный список из n строк, полученных от пользователя, и выводит сумму и произведение элементов каждого подсписка (без использования sum() и math.prod()).
Пример ввода:
6 4 5 6 7 8 2 1 3 9 8 6 4 3 2 6 9 7 6 3 2 1 4 5 7 2 7 3 2 1 6
Вывод:
Подсписок 0: сумма чисел = 30, произведение = 6720 Подсписок 1: сумма чисел = 53, произведение = 2903040 Подсписок 2: сумма чисел = 74, произведение = 2508226560 Подсписок 3: сумма чисел = 101, произведение = 5688657838080 Подсписок 4: сумма чисел = 120, произведение = 1592824194662400 Подсписок 5: сумма чисел = 139, произведение = 401391697054924800
Решение:
n = int(input()) lst = [] for i in range(n): lst. append(list(map(int, input().split()))) summa = 0 prod = 1 for i, j in enumerate(lst): for num in j: summa += num prod *= num print(f'Подсписок {i}: сумма чисел = {summa}, произведение = {prod}')
Задание 4
Напишите программу, которая получает от пользователя строку текста и число n, а затем выводит вложенный список, в котором n последовательных элементов принадлежат разным подспискам.
Пример ввода:
абвгдеёжзийклмнопрстуфхцчшщъыьэюя 9
Вывод:
[['а', 'и', 'с', 'ъ'], ['б', 'й', 'т', 'ы'], ['в', 'к', 'у', 'ь'], ['г', 'л', 'ф', 'э'], ['д', 'м', 'х', 'ю'], ['е', 'н', 'ц', 'я'], ['ё', 'о', 'ч'], ['ж', 'п', 'ш'], ['з', 'р', 'щ']]
Решение:
st = list(input()) n = int(input()) result = [] for i in range(n): result. append(st[i::n]) print(result)
Задание 5
Напишите программу для транспонирования квадратной матрицы.
Пример ввода:
5 1 4 7 8 9 3 5 6 1 0 8 2 4 7 2 8 1 0 3 6 5 4 9 1 2
Вывод:
1 3 8 8 5 4 5 2 1 4 7 6 4 0 9 8 1 7 3 1 9 0 2 6 2
Решение:
n = int(input()) matrix = [input().split() for _ in range(n)] for i in range(n): for j in range(i, n): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] for i in matrix: print(*i)
Задание 6
Напишите программу, которая выводит на экран снежинку размера n x n. Элементы снежинки состоят из символов *, фон – из точек.
Пример ввода:
15
Вывод:
* . . . . . . * . . . . . . * . * . . . . . * . . . . . * . . . * . . . . * . . . . * . . . . . * . . . * . . . * . . . . . . . * . . * . . * . . . . . . . . . * . * . * . . . . . . . . . . . * * * . . . . . . * * * * * * * * * * * * * * * . . . . . . * * * . . . . . . . . . . . * . * . * . . . . . . . . . * . . * . . * . . . . . . . * . . . * . . . * . . . . . * . . . . * . . . . * . . . * . . . . . * . . . . . * . * . . . . . . * . . . . . . *
Решение:
n = int(input()) snowflake = [['.'] * n for _ in range(n)] for i in range(n): for j in range(n): if i == n // 2 or j == n // 2: snowflake[i][j] = '*' elif i == j or i + j + 1 == n: snowflake[i][j] = '*' for line in snowflake: print(*line)
Задание 7
Напишите программу, которая:
- создает квадратную матрицу из полученных на вход строк;
- проверяет, является ли матрица симметричной относительно побочной диагонали;
- выводит
Да
илиНет
в зависимости от результата.
Пример ввода:
4 1 2 3 1 2 2 2 3 3 3 2 2 4 3 2 1
Вывод:
Да
Решение:
n = int(input()) matrix = [] for _ in range(n): matrix.append(list(map(int, input().split()))) ans = 'Да' for i in range(n - 1): for j in range(n - i - 1): if matrix[i][j] != matrix[n - j - 1][n - i - 1]: ans = 'Нет' break if ans == 'Нет': break print(ans)
Задание 8
Напишите программу, которая получает от пользователя число 1 <= n <= 9, и выводит таблицу умножения для всех чисел от 1 до n.
Пример ввода:
5
Вывод:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
Решение:
n = int(input()) for i in range(1, n + 1): for j in range(1, 10): print(i, '*', j, '=', i * j) print()
Задание 9
Напишите программу, которая получает на вход нечетное положительное число n, и выводит треугольник, указывающий вправо.
Пример ввода:
11
Вывод:
* ** *** **** ***** ****** ***** **** *** ** *
Решение:
n = int(input()) for i in range(1, n // 2 + 2): print('*' * i, sep='\n') for i in range(n // 2, 0, -1): print('*' * i)
Задание 10
Напишите программу, которая:
- получает на вход x и y координаты n точек;
- подсчитывает количество точек в каждой из координатных четвертей.
Примечание: к четвертям не относят точки, лежащие непосредственно на координатных осях X и Y.
Пример ввода:
8 -4 1 3 6 7 -9 -1 -10 15 5 -12 15 11 17 -10 1
Вывод:
Первая четверть: 3 Вторая четверть: 3 Третья четверть: 1 Четвертая четверть: 1
Решение:
q_1, q_2, q_3, q_4 = 0, 0, 0, 0 for _ in range(int(input())): x, y = [int(i) for i in input(). split()] if int(x) > 0 and int(y) > 0: q_1 += 1 elif int(x) < 0 and int(y) > 0: q_2 += 1 elif int(x) < 0 and int(y) < 0: q_3 += 1 elif int(x) > 0 and int(y) < 0: q_4 += 1 print(f'Первая четверть: {q_1}', f'Вторая четверть: {q_2}', f'Третья четверть: {q_3}', f'Четвертая четверть: {q_4}', sep='\n')
Подведем итоги
Цикл for универсален – его можно использовать для ввода, обработки и вывода данных. Простые циклы удобнее заменять генераторами и списковыми включениями, но сложные лучше использовать в обычном, развернутом виде – это упрощает отладку и чтение кода.
В следующей статье будем изучать особенности цикла while.
Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
***
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
Интересно, перейти к каналу
Цикл for и функция range в Python
В программирование часто сталкиваются с вопросом перебрать весь список и извлечь из него необходимые данные. Цикл for позволяет перебрать любой итерируемый объект, то есть объект, из которого команда for сможет брать элементы по одному, пока не будет обработан последний элемент, не зависимо от его длины.
Содержание страницы: |
---|
1.1. Цикл for в Python |
1.2. Аргумент end фунции print |
1.3. Действия во время выполнения цикла for |
1.4. Основные ошибки с циклом for |
2.1. Встроенная функция range |
2.2. Создание числового списка с помощью функции range |
2.4. Перебор списка по индексам с помощью функции range |
3. Генераторы списков |
1. Цикл for в Python.
У нас есть список и для того, чтобы не обращаться к каждому элементу по отдельности, мы можем воспользоваться циклом for. В следующем примере переберем список с брендами автомобилей.
>>> cars = [‘ford’, ‘opel’, ‘audi’, ‘land rover’, ‘bmw’]
>>> for brend in cars:
… print(brend) # отступ в 4 пробела
…
ford
opel
audi
land rover
bmw
Во второй строке кода определяется цикл for. Python берет каждую торговую марку из списка и сохраняет его в переменной brend. После двоеточия код на следующей строке должен начинается с 4 пробелами. С помощью функции print, название марки выводится в переменной brand. Затем код повторяется до тех пор, пока не закончатся элементы в списке.
1.2. Аргумент
end фунции print.Функция print выводит свой аргумент, после чего курсор перемещает на следующую строку, но при большом количестве элементов в списке, не всегда это удобно. Можно воспользоваться аргументом end, записав его после переменной.
>>> cars = [‘ford’, ‘opel’, ‘audi’, ‘land rover’, ‘bmw’]
>>> for brend in cars:
… print(brend, end=’ ‘) # отступ в 4 пробела
…
ford opel audi land rover bmw
Аргумент end записывается в виде end=’ ‘. Какое количество пробелов вы укажите, такое и будет после выводится между переменными.
1.3. Действия во время выполнения цикла for.
Во время цикла for помимо вывода элементов, с ними можно выполнять различные действия. К примеру, можно выводить сообщения с каждым проходом цикла, для этого воспользуемся f-строками.
>>> cars = [‘ford’, ‘opel’, ‘audi’, ‘land rover’, ‘bmw’]
>>> for brend in cars:
… print(f»Автомобили торговой марки {brend.title()} очень надежные»)
…
Автомобили торговой марки Ford очень надежные
Автомобили торговой марки Opel очень надежные
Автомобили торговой марки Audi очень надежные
Автомобили торговой марки Land Rover очень надежные
Автомобили торговой марки Bmw очень надежные
Со строками цикл for работает также как и со списком.
IndentationError: expected an indented block
Для устранения этой ошибки, достаточно поставить в следующей строке после команды for 4 пробела. В основном, если вы работаете в любом современном текстовом редакторе, то после двоеточия он сам поставит отступы на следующей строке.
- Лишний отступ.
- Пропущенное двоеточие.
2. 1. Встроенная функция range.
Встроенная функция range() используется для построения числовых последовательностей. В примере используем команду for и функцию range для выполнения ровно 10 итераций с выводом значения от 0 до 10.
>>> for x in range(10):
… print(x, end=’ ‘)
…
0 1 2 3 4 5 6 7 8 9
При передаче только одного аргумента, последовательность будет начинаться с 0 и до значения аргумента (10), не включая его. Одна из самых распространённых ошибок, это когда разработчик предполагает, что значение аргумента функции range включается в сгенерированную последовательность.
Приведем пример с двумя аргументами. Выведем последовательность от 20 до 30.
>>> for x in range(20, 30):
… print(x, end=’ ‘)
…
20 21 22 23 24 25 26 27 28 29
2.2. Создание числового списка с помощью функции range.
- С помощью функции range удобно строить числовые списки.
>>> numbers = list(range(5, 25))
>>> print(numbers)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
- Функция range может создавать последовательности, пропуская числа в заданном диапазоне. Например, приведем пример построения списка от 0 до 100, с шагом 15.
>>> numbers = list(range(0, 100, 15))
>>> print(numbers)
[0, 15, 30, 45, 60, 75, 90]
- С помощью цикла for и функции range можно создавать практически любой числовой список. К примеру, создадим список квадратов всех числе от 1 до 10. Операция возведения в степень обозначается двумя звездочками (**).
>>> a = []
>>> for i in range(1, 11):
… a.append(i**2)
…
>>> print(a)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
На каждом цикле переменная возводится в квадрат и добавляется в список.
2.4. Перебор списка по индексам с помощью функции range
С помощью цикла for и функции range список можно перебирать по индексам и с каждым значением в списки, производить любые операции. Приведем пример, перебора списка по индексам, с помощью функции range и функции len, которая определяет длину списка.
>>> list_1 = [1, 3, 5, 10, 12, 20]
>>> for index in range(len(list_1)):
… list_1[index] += 100
…
>>> print(list_1)
[101, 103, 105, 110, 112, 120]
В начале определим длину списка с помощью функции len. Затем это значение передается функции range. В нашем примере длина списка равна 6. С каждым проходом цикла for, index принимает значения от 0 до 6 (не включая 6). В теле цикла мы вызываем список list_1 и обращаемся к элементам списка по индексам, равные значению переменной index. Каждое значение индекса мы увеличивает на 100. Затем с помощью функции print выводим список на экран и видим что все значения увеличены на 100.
С помощью индексов и функции range мы можем объединять информацию из разных списков. В примере ниже мы имеем список с именами, а второй список с фамилиями. Выведем на экран имя и фамилию:
>>> list_4 = [‘Artem’, ‘Serg’, ‘Georgy’, ‘Petr’]
>>> list_5 = [‘Ivanov’, ‘Petrov’, ‘Sidorov’, ‘Ulyanov’]
>>> for index in range(len(list_4)):
… print(list_4[index], list_5[index])
…
Artem Ivanov
Serg Petrov
Georgy Sidorov
Petr Ulyanov
В результате получили общие данные на экране.
Аналогично можно создавать новые списки из двух или трех списков. Приведем пример перемножения трех списков:
>>> list_1 = [1, 3, 5, 10, 12, 20]
>>> list_2 = [20, -9, 42, 10, 755, 12]
>>> list_3 = [12, 85, 96, 155, 235, 12]
>>> list_new = []
>>> for index in range(len(list_1)):
… list_new.append(list_1[index] * list_2[index] * list_3[index])
…
>>> print(list_new)
[240, -2295, 20160, 15500, 2129100, 2880]
В начале мы создадим пустой новый список вне цикла, куда будем добавлять результат с помощью функции append. В результате мы получим новый список с результатом перемножения предыдущих списков по индексам.
Важно помнить, что программа будет работать, если вы уверены, что списки одинаковой длины. Проверить это вы всегда можете с помощью встроенной функции len.
3. Генераторы списков в Python.
Состоящий выше пример построения квадратов чисел в разделе 2.2 состоял из нескольких строк кода. Генератор списка позволяет сгенерировать тот же список, но всего в одной строке. Определите название списка, после откройте квадратные скобки. Запишите выражение для значений, в нашем случает i ** 2. Затем напишите цикл for для генерирования чисел, которые будут передаваться выражению и закройте квадратные скобки.
>>> a = [i ** 2 for i in range(1,11)]
>>> print(a)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
В результате получился аналогичный список.
Далее: Команда if и функция input в Python
Назад: Сегментация последовательностей в Python
Please enable JavaScript to view the comments powered by Disqus.
Python For Loop с примерами
Что такое Python for loop и как его использовать? Цикл for
в Python — это оператор потока управления, который используется для многократного выполнения кода в последовательности, такой как строка
, список
, кортеж
, набор
, диапазон
или тип словаря (dict)
. В этой статье я объясню использование цикла для
и синтаксис на нескольких простых примерах. Циклы for используются, когда у вас есть блок кода Python, который вы хотите повторить несколько раз. Оператор for всегда сочетается с итерируемыми объектами, такими как набор, список, диапазон и т. д.
В Python циклы for
аналогичны foreach
, когда вы выполняете итерацию по итерируемому объекту без использования счетной переменной. В языках C/C++ для перебора массивов вы должны использовать переменную-счетчик и вручную увеличивать ее для каждой итерации, но цикл for в Python упростил это, чтобы не использовать переменную-счетчик, и предоставляет способ перебора каждого элемента в итерируемом объекте. Это самый продвинутый цикл for, который многие другие языки только начали внедрять.
Для ключевых точек цикла —
- Используйте
для циклов
для повторения строки, списка, кортежа, набора, диапазона или типа словаря. Цикл - Python for похож на цикл
foreach
, а не на C, как циклы, в которых вы можете перебирать индекс. - Чтобы выйти из цикла, используйте оператор
break
. - Чтобы пропустить цикл, используйте оператор
continue
. - Во избежание ошибок используйте инструкцию
pass
. - При желании вы также можете использовать
или
с циклами for.
Содержание
- Синтаксис цикла For
- Операторы разрыва цикла и продолжения
- Циклический проход Заявление
- цикл иначе Оператор
- Вложенный цикл For
- Циклический список
- Цикл через диапазон()
- Проходной комплект
- Цикл через кортеж
- Цикл по словарю (Dict)
1. Python для синтаксиса цикла и пример
Как и любой другой язык программирования, Python для циклов используется для повторения блока кода фиксированное количество раз в последовательности объектов, таких как строка, список, кортеж, диапазон, набор и словарь.
Ниже приведен синтаксис цикла for в Python.
# Python для синтаксиса цикла для x последовательно: #тело цикла
Здесь x
– это переменная, которая принимает все значения, присутствующие в последовательности. Итерация будет продолжаться до тех пор, пока мы не достигнем последнего элемента в последовательности.
1.1 Пример цикла For в Python со строкой
Строка содержит последовательность символов, поэтому мы можем повторять каждый символ в строке, используя цикл for. Здесь мы взяли « Hello
» в качестве строки, поэтому, используя для оператора, мы можем перебирать каждый символ в строке. Например,
# Перебираем строку с = "Привет" для х в с: печать (х)
При запуске программы вы получите следующий вывод.
# Выход: ЧАС е л л о
Иногда вы хотите выйти из цикла python for
, когда вы выполняете определенные условия, используя оператор break, мы можем разорвать цикл на основе условия. Например,
С оператором break вы досрочно выйдете из цикла и продолжите выполнение первого оператора после цикла for.
# Выход из цикла с помощью оператора break список=[10,20,30,40,50] для x в списке: печать (х) если х == 40: перерыв
Приведенный выше пример завершает цикл for, когда значение x равно 40.
# Выход: 10 20 30 40
Обратите внимание, что если у вас есть for с блоком else, выход for с разрывом не приведет к выполнению блока else, я расскажу об этом подробнее в следующих разделах.
Используя оператор continue, мы можем пропустить текущую итерацию цикла и перейти к следующей итерации цикла. Например,
# Пропустить цикл, используя оператор continue список=[10,20,200,30,40,300,60] для x в списке: если х > 100: продолжать печать (х)
Обратите внимание, что 300 не отображается в выводе, так как мы пропустили выполнение с continue, когда значение x больше 100.
# Выход: 10 20 30 40 60
Используйте оператор pass
, если вы хотите для
циклов с пустым телом, где вы хотите завершить реализацию в будущем. Пусто for не является допустимым оператором в python, поэтому при использовании будет получена ошибка, чтобы избежать этой ошибки, используйте оператор pass. Если оператор pass выполняется, на выходе ничего не будет. Например,
# Использование оператора pass во избежание ошибок список=[10,20,30,40] для x в списке: проходить
4. Цикл For с использованием блока else
Python позволяет использовать ключевое слово else
с циклом for
. Блок else является необязательным и должен располагаться после тела цикла. Операторы в блоке else будут выполняться после завершения всех итераций цикла. Если программа выходит из цикла только после выполнения блока else. Например,
# Для блока with else список=[20,30,10,40] для x в списке: печать (х) еще: печатать("Задание выполнено")
При запуске программы вывод будет
# Выход: 20 30 10 40 Задача завершена
Как вы узнали выше, вы можете использовать оператор break для выхода из цикла. В таких случаях часть else не будет выполняться.
список=[20,30,10,40] для x в списке: печать (х) если х == 10: перерыв еще: печатать("Задание выполнено")
Урожайность ниже выхода
# Выход: 20 30 10
5. Вложенный цикл For
Если цикл находится внутри тела другого цикла, он называется вложенным циклом. Внутренний цикл будет выполняться n раз для каждой итерации внешнего цикла. Например,
# Использование вложенных циклов список1=[10,20] список2=[5,10,20] для x в списке1: для у в списке2: печать (х, у)
Выход ниже выходного.
# Выход: 10 5 10 10 10 20 20 5 20 10 20 20
# Использование оператора break во вложенных циклах список1=[10,20] список2=[5,10,20] для x в списке1: для у в списке2: если х == у: перерыв распечатать (х, у)
Выход ниже выходного.
# Выход: 10 5 20 5 20 10
6. Python для цикла с использованием списка
Как мы знаем, список содержит набор значений, поэтому мы можем перебирать каждое значение, присутствующее в списке, используя циклы for. Например,
# Итерация по списку курсы = ["java", "python", "панды"] для х в курсах: печать (х)
Выход ниже выходного.
# Выход: Джава питон панды
7. Цикл Python For Использование функции range()
Используя функцию range()
, мы можем представить последовательность значений. так что мы можем перебирать каждое значение, присутствующее в последовательности, с помощью циклов. Например,
Пример 1
# Итерация по диапазону() для x в диапазоне (5): печать (х)
Когда вы запустите программу, вы получите следующий вывод.
# Выход: 0 1 2 3 4
В приведенном выше примере мы использовали range(5)
, range(5) будет возвращать числа от 0 до 4. Это означает, что функция range()
начинается с 0 и увеличивается на 1 (по умолчанию) и заканчивается перед конечной цифрой.
Предположим, мы хотим 1 (не только 1, но и любое число) в качестве начального значения. Можно указать начальное значение, добавив параметр range(1, 6)
, что означает значения от 1 до 5 (не включая 6).
Пример 2
# Использование начального параметра в функции range() для x в диапазоне (1,6): печать (х)
Выход ниже выходного.
# Выход: 1 2 3 4 5
Пример 3
В функции range()
, когда вы передаете все три аргумента, она возвращает последовательность чисел, начиная с начального номера, увеличиваясь на номер шага и заканчивая конечным номером.
# Увеличить шаг на 5 для x в диапазоне (5,50,5): печать (х)
Выход ниже выходного.
# Выход: 5 10 15 20 25 30 35 40 45
Пример 4
Использование функции range()
в циклах for для перебора последовательности значений. Комбинация функций range()
и len()
для перебора последовательности с использованием индексации. Самый простой и наиболее знакомый способ доступа к индексу элементов в цикле for – использование длины списка. Для каждой итерации индекс
будет увеличен, мы можем получить доступ к списку с соответствующим индексом
. Например,
список=[20,30,10,40] для индекса в диапазоне (len (список)): значение = список [индекс] печать (индекс, значение)
Урожайность ниже выхода
# Выход: 0 20 1 30 2 10 3 40
8. Цикл For с использованием набора Python
Набор
в Python представляет собой неупорядоченный набор элементов. поэтому объекты в наборе не упорядочены, для доступа к ним нельзя использовать индексы. Наборы представляют собой неупорядоченную коллекцию, поэтому доступ к значениям через индексацию невозможен. Если мы хотим получить доступ к заданным значениям, самый простой способ перебора набора — использование для петли. В этой статье вы узнаете, как перебирать наборы с помощью цикла for. Например,
# перебираем набор курсы = {"java", "python", "панды"} для х в курсах: печать (х)
Урожайность ниже выхода
# Выход: питон панды Джава
9.
Цикл Python For с использованием кортежа Кортеж
представляет собой набор значений. поэтому мы можем перебирать значения, присутствующие в коллекции, с помощью цикла python for. Обратите внимание, что кортеж может иметь значения любого типа.
# перебираем кортеж курсы = ("java", "python", "панды") для х в курсах: печать (х)
Выход ниже выходного.
# Выход: Джава питон панды
Используя цикл for, мы также можем перебирать словарь. Существует несколько способов итерации и получения ключа и значений из dict. Итерация по ключам, Итерация по ключу и значению. Я расскажу об этом на примерах ниже.
10. Python For Loop с использованием словаря
10.1 For Loop by Python Dict Keys
По умолчанию, если вы используете описанные выше примеры, вы будете получать один ключ из словаря для каждой итерации.
# Цикл по ключам Dict technology={"Курс":"python","Стоимость":4000,"Продолжительность":"60 дней"} для x в технологии: печать (х)
Выход ниже выходного. Обратите внимание, что он только что отобразил ключи из dict.
# Выход: Курс Платеж Продолжительность
10.2 Python для цикла по ключу и значению
Используйте dict.items()
, который возвращает объект представления, который дает список пар кортежей словаря (ключ, значение). Вы можете перебрать кортеж, чтобы получить ключ и значение.
# Перебираем по ключу и значению technology={"Курс":"python","Стоимость":4000,"Продолжительность":"60 дней"} для ключа, значение в technology.items(): печать (ключ, значение)
Урожайность ниже выхода
# Выход: Курс Python Плата 4000 Продолжительность 60 дней
10.3 Используйте ключ, чтобы получить значение
Используйте dict[key]
, чтобы получить значение ключа.
# Используйте ключ, чтобы получить значение technology={"Курс":"python","Стоимость":4000,"Продолжительность":"60 дней"} для ключа в технологии: печать(ключ,технология[ключ])
Выход ниже выходного.
# Выход: Курс Python Плата 4000 Продолжительность 60 дней
10.4 Используйте dict.keys() и dict.values()
Вы также можете получить dict.keys()
и выполнить итерацию по каждому ключу, аналогично, вы можете получить dict.values()
и выполнить итерацию каждого ценить.
# Используйте dict.keys() и dict.values() technology={"Курс":"python","Стоимость":4000,"Продолжительность":"60 дней"} для ключа в technology.keys(): print('Ключ: '+ ключ) для значения в technology.values(): print('Значение: '+значение)
Выход ниже выходного.
# Выход: Ключ: Курс Ключ: Плата Ключ: продолжительность Значение: питон Стоимость: 4000 Стоимость: 60 дней
Заключение
В этой статье вы узнали, как перебирать такие объекты, как строка, список, диапазон, кортеж, словарь и другие объекты, используя цикл python for. Кроме того, вы изучили вложенные циклы на примерах.
Счастливого обучения!!
Статьи по теме
- Цикл с оператором if в Python
- Оператор разрыва цикла в Python
- Перебор массива в Python
- Цикл с продолжением и разрывом в Python
- Как выполнить декремент для цикла в Python
- Как увеличить цикл в Python
- Перечисление цикла в Python
- Получить значения счетчика в цикле for в Python?
- Индекс доступа в цикле for в Python
- Как запустить Python для цикла в 1
- Перебор списка в Python
- Перебор словаря в Python
Python For Loop — PYnative
В этой статье вы узнаете, что такое цикл for
в Python и как его написать. Мы используем цикл для
, когда хотим повторить блок кода фиксированное количество раз.
Цикл for — это часть оператора потока управления, который помогает вам понять основы Python.
Содержание
- Что такое цикл for в Python
- Пример: вывод первых 10 чисел с использованием цикла for
- Цикл for с диапазоном()
- Как работает цикл for
- Зачем использовать цикл for?
- Оператор If-else в цикле for
- Операторы управления циклом в цикле for
- Оператор Break в цикле
- Оператор Continue в цикле for
- Оператор Pass в цикле for
- Блок Else в цикле for 90 Reverse
90 Цикл
- Обратная итерация с использованием функции reversed()
- Обратный цикл for с использованием range()
- Цикл while внутри цикла for
Что такое цикл for в Python
В Python цикл for
используется для перебора последовательностей, таких как список, строка, кортеж и других итерируемых объектов, таких как диапазон.
С помощью для цикла
, мы можем перебирать каждый элемент, присутствующий в последовательности, и выполнять один и тот же набор операций для каждого элемента. Используя циклы для
в Python, мы можем эффективно автоматизировать и повторять задачи.
Суть в том, что с помощью цикла for мы можем повторять блок операторов фиксированное количество раз. Давайте разберемся с этим на примере.
В отличие от циклов while, которые выполняются до тех пор, пока условие не станет истинным, циклы for
выполняются фиксированное количество раз, вам нужно знать, сколько раз повторять код.
- Неизвестное количество раз : Например, попросите пользователя угадать счастливый номер. Вы не знаете, сколько попыток потребуется пользователю, чтобы угадать правильно. Это может быть 1, 20 или, может быть, неопределенный срок. В таких случаях используйте цикл
while
. - Фиксированное количество раз : Распечатайте таблицу умножения 2. В этом случае вы знаете, сколько итераций вам нужно. Здесь нужно 10 итераций. В таком случае используйте
для цикла
.
Синтаксис для цикла
для i в диапазоне/последовательности: заявление 1 заявление 2 оператор n
- В синтаксисе
i
— это повторяющаяся переменная, а диапазон указывает, сколько раз должен выполняться цикл. Например, если список содержит 10 чисел, цикл for будет выполняться 10 раз для вывода каждого числа. - На каждой итерации цикла переменная
i
получает текущее значение.
- Здесь мы использовали функцию range() для генерации целых чисел от 0 до 9
- Затем мы использовали цикл
for
для перебора чисел, полученных функциейrange()
- В теле цикла мы напечатали текущее число.
для числа в диапазоне (10): print(num)
Вывод :
0 1 2 3 4 5 6 7 8 9
для
петли с range()
Функция range() возвращает последовательность чисел, начиная с 0 (по умолчанию), если начальный предел не указан, и увеличивается на 1 (по умолчанию), пока не будет достигнут окончательный предел.
Функция range()
используется с циклом для указания диапазона (сколько раз) будет выполняться кодовый блок. Давайте посмотрим на примере.
Пример: вывести сумму всех четных чисел от 10 до 20
- Установить переменную суммы на ноль.
- Используйте диапазон
(2, 22, 2)
, чтобы получить все четные числа от 2 до 20. (Здесь значение шага равно 2, чтобы получить четное число, потому что четные числа делятся на 2) - Затем используйте цикл
for
для перебора каждого числа - На каждой итерации добавляйте текущее число к переменной суммы с помощью арифметического оператора.
сумма = 0 для я в диапазоне (2, 22, 2): сумма = сумма + я печать (сумма) # вывод 110
Как работает цикл
по
Цикл по
— это самый простой способ повторного выполнения одних и тех же действий. Например, вы хотите вычислить квадрат каждого числа, присутствующего в списке.
Напишите для цикла
для повторения списка. На каждой итерации он будет получать следующее число из списка, а внутри тела цикла вы можете написать код для вычисления квадрата текущего числа.
Пример: Вычислить квадрат каждого числа из списка
Список Python — это упорядоченная последовательность элементов. Предположим, у вас есть список из 10 чисел. Давайте посмотрим, как вычислить квадрат каждого числа, используя цикл для
.
чисел = [1, 2, 3, 4, 5] # перебираем каждый элемент в списке num для я в цифрах: # ** оператор экспоненты квадрат = я ** 2 print("Квадрат:", i, "есть:", квадрат)
Вывод:
Квадрат: 1 равен: 1 Квадрат: 2 равен: 4 Квадрат: 3 равен: 9 Площадь: 4 составляет: 16 Квадрат: 5 равен: 25
Примечание :
Цикл выполняется до тех пор, пока не будет достигнут последний элемент в последовательности. Если он достигает последнего элемента в последовательности, он выходит из цикла. в противном случае он продолжает выполнять операторы, представленные в теле цикла
Блок-схема цикла forЗачем использовать цикл
for
? Давайте посмотрим на использование цикла for
в Python.
- Определенная итерация : Когда мы знаем, сколько раз мы хотим запустить цикл, мы используем циклы с контролируемым счетом, такие как циклы for. Он также известен как определенная итерация. Например, Рассчитайте процент 50 студентов. здесь мы знаем, что нам нужно повторить цикл 50 раз (по 1 итерации для каждого ученика).
- Уменьшает сложность кода. : Цикл повторяет определенный блок кода определенное количество раз. Это уменьшает повторение строк кода, тем самым уменьшая сложность кода. Используя
для
циклов идля
циклов, мы можем эффективно автоматизировать и повторять задачи. - Цикл по последовательностям : используется для перебора списков, строк, кортежей, словарей и т. д. и выполнения над ними различных операций в зависимости от условий, заданных пользователем.
Пример: вычислить среднее значение списка чисел
чисел = [10, 20, 30, 40, 50] # определенная итерация # запустить цикл 5 раз, потому что список содержит 5 элементов сумма = 0 для я в цифрах: сумма = сумма + я list_size = длина (числа) среднее = сумма / размер_списка print(average)
Output :
30.0
If-else
in for
loopВ этом разделе мы увидим, как использовать операторы if-else с циклом. Если-иначе используется, когда требуется условная итерация. Например, выведите имена учащихся, набравших более 80 процентов.
Оператор if-else проверяет условие и, если условие равно True
, он выполняет блок кода, присутствующий внутри блока if, а если условие имеет значение False, он выполняет блок кода, присутствующий внутри блока else.
Когда внутри цикла используется условие if-else, интерпретатор проверяет условие if на каждой итерации, и в зависимости от результата выполняется правильный блок.
если условие: блок заявлений еще: блок утверждений
Пример : Вывести все четные и нечетные числа
- В этой программе оператор цикла
for
сначала перебирает все элементы от 0 до 20. - Далее, оператор
if
проверяет, является ли текущее число четным или нет. Если да, то печатает. В противном случае выполняется блок else.
для i в диапазоне (1, 11): если я % 2 == 0: print('Четное число:', i) еще: print('Нечетное число:', i)
Вывод:
Нечетное число: 1 Четное число: 2 Нечетное число: 3 Четное число: 4 Нечетное число: 5 Четное число: 6 Нечетное число: 7 Четное число: 8 Нечетное число: 9 Четное число: 10
Практическая задача : –
Используйте цикл for
для создания списка чисел от 9 до 50, кратных 2.
для i в диапазоне (9, 51): # делим каждое число на 2 если я%2==0: print(i)
Операторы управления циклом изменяют нормальный поток выполнения. Он используется, когда вы хотите выйти из цикла или пропустить часть цикла на основе заданного условия. Он также известен как операторы передачи.
Теперь давайте узнаем о трех типах операторов управления циклом: break
, continue
и pass
.
Break for loop
Оператор break используется для завершения цикла . Вы можете использовать оператор break всякий раз, когда хотите остановить цикл. Просто вам нужно ввести разрыв внутри цикла после оператора, после которого вы хотите разорвать цикл.
Когда встречается оператор break
, Python останавливает текущий цикл, и поток управления переносится на следующую строку кода, следующую сразу за циклом.
Пример: разорвать цикл, если число число больше 15
- В этой программе цикл for перебирает каждое число из списка.
- Затем оператор if проверяет, больше ли текущее значение 15. Если да, то разорвать цикл, иначе вывести текущее число
чисел = [1, 4, 7, 8, 15, 20, 35, 45, 55] для я в цифрах: если я > 15: # разорвать петлю перерыв еще: print(i)
Вывод:
1 4 7 8 15
Примечание : Если оператор break используется внутри вложенного цикла (цикл внутри другого цикла), он завершит самый внутренний цикл.
Оператор continue в цикле for
Оператор continue пропускает текущую итерацию цикла и сразу переходит к следующей итерации
Используйте оператор continue
, если вы хотите немедленно перейти к следующей итерации цикла. Проще говоря, когда переводчик нашел 9Оператор 0003 continue внутри цикла пропускает оставшийся код и переходит к следующей итерации.
Оператор continue
пропускает блок кода в цикле только для текущей итерации. Цикл не завершается, а продолжается в следующей итерации, игнорируя указанный блок кода. Давайте посмотрим на использование оператора continue на примере.
Пример: Подсчитать общее количество «m» в заданной строке.
- В этой программе 9Оператор цикла 0003 вместо перебирает каждую букву заданной строки.
- Далее оператор if проверяет, является ли текущий символ m или нет. Если это не m, он переходит к следующей итерации, чтобы проверить следующую букву. иначе он увеличивает счет
имя = "Мария Меннен" количество = 0 для char в имени: если символ != 'м': продолжать еще: количество = количество + 1 print('Общее количество m равно:', count)
Вывод:
Общее количество m равно: 2
Примечание : В случае внутреннего цикла продолжается только внутренний цикл.
Оператор Pass в цикле for
Оператор pass
является пустым оператором, т. е. при его выполнении ничего не происходит. В основном он используется в пустых функциях или классах. Когда интерпретатор находит в программе оператор pass
, он не возвращает никакой операции.
Иногда в программировании возникает ситуация, когда нам нужно определить синтаксически пустой блок. Мы можем определить этот блок с помощью ключевого слова pass.
Давайте рассмотрим использование оператора pass на примере.
число = [1, 4, 5, 3, 7, 8] для i в числе: # вычислить умножение в будущем, если требуется pass
Else блок в
for
loop Как и оператор if
, Python позволяет нам использовать оператор else вместе с циклом for. В Python цикл for может иметь блок else
, который будет выполняться, когда цикл завершится нормально . Определение else 9Часть 0004 с циклом
для
не является обязательной.
иначе блок будет пропущен, когда
- for цикл резко завершится
- оператор break используется для разрыва цикла
Пример 1: Блок Else в цикле for
В этом примере мы печатаем первые 5 чисел, и после успешного выполнения цикла интерпретатор выполнит блок else.
для i в диапазоне (1, 6): печать (я) еще: распечатать("Готово")
Выход:
1
2
3
4
5
DED
Пример 2: Оба Break
и ДВА из 5, и после этого мы используем оператор
break
, чтобы остановить цикл. Поскольку цикл завершается внезапно, блок else не будет выполняться.
счет = 0 для i в диапазоне (1, 6): количество = количество + 1 если количество > 2: перерыв еще: печать (я) еще: печать("Готово")
Вывод:
1
2
Обратный цикл
До сих пор мы изучали прямой цикл в цикле for
на различных примерах. Теперь мы узнаем об обратной итерации цикла.
Иногда нам нужно выполнить обратный цикл, что весьма полезно. Например, чтобы перевернуть список.
Существует три способа повторения цикла for
в обратном направлении
- Обратный цикл for с использованием
range()
- Обратный цикл for с использованием функции
reversed()
Обратная итерация с использованием функции reversed()
Мы можем использовать встроенную функцию reversed()
с циклом for
для изменения порядка элементов, и это самый простой способ выполнить обратный цикл.
Пример :
# Обратные числа с помощью функции reversed() список1 = [10, 20, 30, 40] для числа в обратном порядке (список1): печать (число)
Выход:
40 30 20 10
Обратный цикл for с использованием range()
Мы можем использовать встроенную функцию range()
с циклом for
, чтобы изменить порядок элементов. range()
генерирует целые числа между заданным начальным целым числом и конечным целым числом.
print("Обратные числа с использованием цикла for") число = 5 # начало = 5 # стоп = -1 # шаг = -1 для числа в (диапазон (число, -1, -1)): печать (число)
Вывод:
4
3
2
1
0
Пример 3: Перевернуть список с помощью цикла
числа = [1, 42,] для i в числах[::-1]: Печать (I)
Выход:
4
3
2
1
Вложенные
для
петли заложенные для петли - для
-го петли внутри еще для
A Loop.
Вложенный цикл состоит из одного цикла внутри другого. Он в основном используется с двумерными массивами. Например, печать цифр или узоров в виде звезд. Здесь внешний цикл — это не что иное, как строка, а внутренний цикл — это столбцы.
Во вложенных циклах внутренний цикл завершает всю свою итерацию для каждой итерации внешнего цикла. т. е. для каждой итерации внешнего цикла внутренний цикл перезапускается и завершает все свои итерации, затем начинается следующая итерация внешнего цикла.
Синтаксис вложенных циклов for :
# внешний цикл for для элемента в последовательности # внутренний цикл for для элемента в последовательности: тело внутреннего цикла for тело внешнего цикла for прочая отчетность
Пример : Вложенный цикл for для печати следующего шаблона
* * * * * * * * * * * * * * *
строк = 5 # внешний цикл для я в диапазоне (1, строки + 1): # внутренний цикл для j в диапазоне (1, i + 1): распечатать("*", конец=" ") print('')Вложенный цикл for
- В этой программе внешний цикл - это число печатаемых строк.
- Число строк равно пяти, поэтому внешний цикл будет выполняться пять раз
- Далее внутренний цикл определяет общее количество столбцов в каждой строке.
- Для каждой итерации внешнего цикла количество столбцов увеличивается на 1
- В первой итерации внешнего цикла количество столбцов равно 1, в следующей - 2 и так далее.
- Итерация внутреннего цикла равна количеству столбцов.
- На каждой итерации внутреннего цикла мы печатаем звездочку
Цикл While
внутри цикла for
Цикл while является циклом, контролируемым входом, а цикл for
является циклом, контролируемым счетом. Мы также можем использовать в то время как цикл
под оператором цикла для
. Давайте посмотрим на пример, чтобы понять лучше.
Пример: Печать таблицы умножения первых 5 чисел с использованием цикла for и цикла while
- В этой программе мы повторяем первые пять чисел одно за другим, используя внешний цикл и
диапазон
функцию - Далее, в каждой итерации внешнего цикла, мы будем использовать внутренний цикл while для печати таблицы умножения текущего числа
# внешний цикл для i в диапазоне (1, 6): print('Таблица умножения:', я) количество = 1 # внутренний цикл для вывода таблицы умножения текущего числа в то время как количество < 11: печать (я * количество, конец = '') количество = количество + 1 print('\n')
for
цикл в одной строке Мы также можем сформулировать оператор цикла for
в одну строку, чтобы уменьшить количество строк кода. Давайте посмотрим пример этого.
Пример: Вывести четные числа, добавив 1 к нечетным числам в списке
нечетное = [1, 5, 7, 9] четный = [i + 1 для нечетного i, если i % 2 == 1] печать (даже)
Выход :
[2, 6, 8, 10]
Доступ к индексу
в для цикла
число или любая последовательность, такая как список или строка. Например, список — это упорядоченная структура данных, в которой каждый элемент хранится с его порядковым номером. Используя порядковый номер элемента, мы можем получить доступ или изменить его значение. Используя функцию enumerate
с циклом, мы можем получить доступ к элементам списка с их порядковым номером. enumerate()
добавляет счетчик к итерации и возвращает его в виде перечисляемого объекта.
Есть три способа получить доступ к индексу в цикле for, давайте рассмотрим каждый по одному
Пример 1: Вывести элементы списка с его порядковым номером, используя функцию enumerate()
В этой программе функция for цикл выполняет итерацию по списку и отображает элементы вместе с их порядковым номером.
чисел = [4, 2, 5, 7, 8] для i, v в перечислении (числа): print('Числа[', i, '] =', v)
Вывод:
Числа[ 0 ] = 4 Числа [ 1 ] = 2 Числа [ 2 ] = 5 Числа [3] = 7 Numbers[ 4 ] = 8
Пример 2: Печать элементов списка с их порядковым номером с использованием функции range()
чисел = [1, 2, 4, 6, 8] размер = длина (числа) для я в диапазоне (размер): print('Индекс:', i, " ", 'Значение:', числа [i])
Выход:
Индекс: 0 Значение: 1 Индекс: 1 Значение: 2 Индекс: 2 Значение: 4 Индекс: 3 Значение: 6 Индекс: 4 Значение: 8
Итерация
Строка с использованием для цикла
Перебирая строку с использованием цикла для цикла
, мы можем выполнять множество строковых операций. Давайте посмотрим, как выполнять различные операции со строками, используя цикл for
.
Пример 1: Доступ ко всем символам строки
name = "Jessa" для я в имени: напечатать (я, конец = ' ')
Вывод:
Jess a
Пример 2: Итерация строки в обратном порядке
name = "Jessa" для i в имени[::-1]: напечатать (я, конец = '')
Выходные данные:
as s e J
Пример 3: Перебор определенного набора символов в строке
name = "Jessa watson" для char в имени[2:7:1]: print(char, end=' ')
Вывод:
s aw
Пример 5: Перебор слов в предложении с помощью функции split()
.
dialog = «Помни, Рэд, надежда — это хорошо, может быть, даже лучше всего, а хорошее никогда не умирает» # разделить по пробелам для слова в dialog.split(): печать (слово)
Вывод:
Помните, Красный, надеяться является а хороший вещь, может быть в лучший из вещи, и нет хороший вещь всегда dies
Перебор списка с использованием цикла
for
Сначала давайте узнаем, что такое список. Список Python — это упорядоченный набор элементов различных типов данных. Это означает, что списки упорядочены по порядковым номерам, начиная с 0 и заканчивая общим количеством элементов-1. Элементы списка заключены в квадрат []
скобки.
Ниже приведены несколько примеров списка Python.
цифр = [1,2,4,6,7] игроки = ["Месси", "Роналдо", "Неймар"]
Используя цикл, мы можем выполнять различные операции над списком. Есть способы перебирать элементы в нем. Вот несколько примеров, которые помогут вам лучше понять.
Пример 1: Перебор списка
чисел = [2, 3, 5, 6, 7] для числа в цифрах: печать(число)
Вывод:
2
3
5
6
7
Пример 2: Перебор списка с использованием цикла for и диапазона .
чисел = [1, 2, 3, 6, 7] размер = длина (числа) для я в диапазоне (размер): Печать (Числа [i])
Выход:
1
2
3
6
7
Пример 3: Понимание
Числа = [1, 3, 7, 7, 7, 7, 8] 8] 8] 8] 8] 8] # понимание списка [print(i) для i в цифрах]
Вывод:
1
2
3
7
8
Итерация словаря с использованием цикла
for
Во-первых, давайте узнаем, что такое словарь. Словарь Python используется для хранения элементов в формате пары ключ-значение. Он не позволяет дублировать элементы.