Цикл for
Функция range
В презентации использованы материалы Благотворительного фонда развития образования «Айкью Опшн» �авторским коллективом школы BEEGEEK.
Цикл for
Циклы в Python
Одним из преимуществ компьютеров является их способность повторять одни и те же действия большое количество раз.
В Python существует две основные разновидности цикла:
3
Циклы используются для повторения однотипных действий
Цикл for
Распечатать слово Привет один раз:
print('Привет')
print('Привет')
print('Привет')
print('Привет')
print('Привет')
print('Привет')
4
Распечатать слово Привет пять раз:
Распечатать слово Привет десять раз?
Цикл for
Код, который распечатает 10 раз слово Привет:
for i in range(10):
print('Привет')
5
Цикл for
Код, который распечатает 10 раз слово Привет:
for i in range(10):
print('Привет')
for название переменной in range(количество повторений):
блок кода
6
Структура цикла for в Python выглядит так:
Двоеточие (:) в конце строки сообщает Python, что дальше находится блок команд, называемый телом цикла.
Цикл for VS условный оператор if
for название переменной in range(количество повторений):
блок кода
Структура условного оператора if:
if условие:
блок кода
7
Структура цикла for:
Цикл for
С помощью цикла for, можно считывать и обрабатывать сколько угодно чисел:
for i in range(5):
num = int(input())
print('Квадрат вашего числа равен:', num*num)
print('Цикл завершен')
8
Такая программа считывает 5 чисел и выводит их квадраты вместе с поясняющей надписью.
Цикл for
С помощью цикла for, можно считывать и обрабатывать сколько угодно чисел:
for i in range(5):
num = int(input())
print('Квадрат вашего числа равен:', num*num)
print('Цикл завершен')
9
тело цикла
отступ
Четвертая строка не содержит отступа, поэтому не является частью цикла
Цикл for
Предыдущий код, равнозначен коду:
num = int(input())
print('Квадрат вашего числа равен:', num*num)
num = int(input())
print('Квадрат вашего числа равен:', num*num)
num = int(input())
print('Квадрат вашего числа равен:', num*num)
num = int(input())
print('Квадрат вашего числа равен:', num*num)
num = int(input())
print('Квадрат вашего числа равен:', num*num)
print('Цикл завершен')
1 число
2 число
3 число
4 число
5 число
10
Цикл for
Что покажет приведенный ниже фрагмент кода?
print('A')
print('B')
for i in range(5):
print('C')
print('D')
print('E')
11
Цикл for
Что покажет приведенный ниже фрагмент кода?
print('A')
print('B')
for i in range(5):
print('C')
for i in range(5):
print('D')
print('E')
12
Примечания
Однократное выполнение тела цикла называется итерацией цикла
Слово for пишется маленькими буквами
Первая строка цикла должна заканчиваться двоеточием (:)
Тело цикла должно быть выделено отступом
13
Переменная цикла
Цикл for: переменная цикла
for название переменной in range(количество повторений):
блок кода
Не совсем понятно, для чего нужна и как работает переменная цикла.
15
Структура цикла for в Python выглядит так:
Цикл for: переменная цикла
for i in range(10):
print(i)
Что покажет приведенный выше фрагмент кода?
16
Рассмотрим следующий код:
Цикл for: переменная цикла
for i in range(10):
print(i)
0
1
2
3
4
5
6
7
8
9
17
Рассмотрим следующий код:
Когда цикл впервые начинает работу Python устанавливает значение переменной цикла i = 0. Каждый раз когда мы повторяем тело цикла Python увеличивает значение переменной на 1
Начальное значение i = 0, а не 1
Цикл for: переменная цикла
for i in range(10):
print(i + 1, '-- Привет')
1 -- Привет
2 -- Привет
3 -- Привет
4 -- Привет
5 -- Привет
6 -- Привет
7 -- Привет
8 -- Привет
9 -- Привет
10 -- Привет
18
Поскольку переменная цикла i увеличивается на 1 каждый раз, то ее можно использовать для отслеживания номера итерации, на которой мы находимся в циклическом процессе.
Обратите внимание, за счет выражения i + 1, мы начинаем вывод с 1, а не с 0.
Имена переменных цикла
for i in range(5):
print(i)
0
1
2
3
4
for num in range(5):
print(num)
19
Для переменных цикла обычно используют буквы i, j, k.
Результат выполнения обеих программ:
Имена переменных цикла
for i in range(5):
print('Python - awesome!')
20
Переменная цикла i не используется в теле цикла:
Имена переменных цикла
for _ in range(5):
print('Python - awesome!')
Python - awesome!
Python - awesome!
Python - awesome!
Python - awesome!
Python - awesome!
21
Мы можем использовать символ нижнего подчеркивания _:
Результат выполнения такой программы:
Примечания
Следует помнить, что правая граница цикла в Python всегда невключительна:
for i in range(5):
print(i)
0
1
2
3
4
for i in range(5):
print(i + 1)
22
Если требуется распечатать числа от 1 до 5, то:
Задача:
23
Функция range
Функция range с одним параметром
Функция range(n) генерирует последовательность чисел от 0 до n-1, а цикл for последовательно перебирает эту последовательность.
for i in range(10):
сказать('Привет', назвать i)
Переменная i принимает последовательно значения: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
25
Функция range с одним параметром
Функция range(n) генерирует последовательность чисел от 0 до n-1, а цикл for последовательно перебирает эту последовательность.
for i in range(10):
print('Привет', i)
Переменная i принимает последовательно значения: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
26
Функция range с двумя параметрами
Функция range(n, m) генерирует последовательность чисел �от n до m-1 с шагом 1, а цикл for последовательно перебирает эту последовательность.
for i in range(3, 7):
хлопнуть в ладоши(i раз)
Переменная i принимает последовательно значения: 3, 4, 5, 6.
27
Функция range с двумя параметрами
Функция range(n, m) генерирует последовательность чисел от n до m-1 с шагом 1, а цикл for последовательно перебирает эту последовательность.
for i in range(3, 10):
print('Привет', i)
Переменная i принимает последовательно значения: 3, 4, 5, 6, 7, 8, 9.
28
Функция range с тремя параметрами
Функция range(n, m, k) генерирует последовательность чисел от n до m-1 с шагом k, а цикл for последовательно перебирает эту последовательность.
for i in range(3, 10, 2):
присесть(i раз)
Переменная i принимает последовательно значения: 3, 5, 7, 9.
29
Функция range с тремя параметрами
Функция range(n, m, k) генерирует последовательность чисел от n до m-1 с шагом k, а цикл for последовательно перебирает эту последовательность.
for i in range(3, 10, 2):
print('Привет', i)
Переменная i принимает последовательно значения: 3, 5, 7, 9.
30
Отрицательный шаг
В случае отрицательного шага, мы должны гарантировать, что старт генерации (первый параметр) больше чем конец генерации (второй параметр).
for i in range(10, 3, -1):
сказать('Пока', назвать i)
Переменная i принимает последовательно значения: 10, 9, 8, 7, 6, 5, 4.
31
Отрицательный шаг
В случае отрицательного шага, мы должны гарантировать, что старт генерации (первый параметр) больше чем конец генерации (второй параметр).
for i in range(10, 3, -1):
print('Привет', i)
Переменная i принимает последовательно значения: 10, 9, 8, 7, 6, 5, 4.
32
Задача
Какую последовательность чисел даст вызов функции?
33
Вызов функции | Результат |
range(10) range(1, 10) range(3, 7) range(7, 3) range(2, 15, 3) range(9, 2, -1) range(3, 10, -2) | |
Задача
Какую последовательность чисел даст вызов функции?
34
Вызов функции | Результат |
range(10) range(1, 10) range(3, 7) range(7, 3) range(2, 15, 3) range(9, 2, -1) range(3, 10, -2) | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 1, 2, 3, 4, 5, 6, 7, 8, 9 3, 4, 5, 6 пустая последовательность 2, 5, 8, 11, 14 9, 8, 7, 6, 5, 4, 3 пустая последовательность |
Задачи:
35
Квадрат числа
На вход программе подается натуральное число n. Напишите программу, которая для каждого из чисел от 0 до n (включительно) выводит фразу: «Квадрат числа [число] равен [число]» (без кавычек).
Формат входных данных�На вход программе подается натуральное число n.
Формат выходных данных�Программа должна вывести текст в соответствии с условием задачи.
Последовательность чисел 1
Даны два целых числа m и n (m≤n). Напишите программу, которая выводит все числа от m до n включительно.
Формат входных данных�На вход программе подаются два целых числа m и n, каждое на отдельной строке.
Формат выходных данных�Программа должна вывести числа в соответствии с условием задачи.
Задачи:
36
Последовательность чисел 2
Даны два натуральных числа m и n (m≤n). Напишите программу, которая выводит все числа от m до n включительно удовлетворяющие хотя бы одному из условий:
число кратно 17;
число оканчивается на 9;
число кратно 3 и 5 одновременно.
Формат входных данных�На вход программе подаются два натуральных числа m и n (m≤n), каждое на отдельной строке.