1 of 36

Цикл for

Функция range

В презентации использованы материалы Благотворительного фонда развития образования «Айкью Опшн» �авторским коллективом школы BEEGEEK.

2 of 36

Цикл for

3 of 36

Циклы в Python

Одним из преимуществ компьютеров является их способность повторять одни и те же действия большое количество раз.

В Python существует две основные разновидности цикла:

  • циклы, повторяющиеся определенное количество раз (for);
  • циклы, повторяющиеся пока верно некоторое условие (while).

3

Циклы используются для повторения однотипных действий

4 of 36

Цикл for

Распечатать слово Привет один раз:

print('Привет')

print('Привет')

print('Привет')

print('Привет')

print('Привет')

print('Привет')

4

Распечатать слово Привет пять раз:

Распечатать слово Привет десять раз?

5 of 36

Цикл for

Код, который распечатает 10 раз слово Привет:

for i in range(10):

print('Привет')

5

6 of 36

Цикл for

Код, который распечатает 10 раз слово Привет:

for i in range(10):

print('Привет')

for название переменной in range(количество повторений):

блок кода

6

Структура цикла for в Python выглядит так:

Двоеточие (:) в конце строки сообщает Python, что дальше находится блок команд, называемый телом цикла.

7 of 36

Цикл for VS условный оператор if

for название переменной in range(количество повторений):

блок кода

Структура условного оператора if:

if условие:

блок кода

7

Структура цикла for:

8 of 36

Цикл for

С помощью цикла for, можно считывать и обрабатывать сколько угодно чисел:

for i in range(5):

num = int(input())

print('Квадрат вашего числа равен:', num*num)

print('Цикл завершен')

8

Такая программа считывает 5 чисел и выводит их квадраты вместе с поясняющей надписью.

9 of 36

Цикл for

С помощью цикла for, можно считывать и обрабатывать сколько угодно чисел:

for i in range(5):

num = int(input())

print('Квадрат вашего числа равен:', num*num)

print('Цикл завершен')

9

тело цикла

отступ

Четвертая строка не содержит отступа, поэтому не является частью цикла

10 of 36

Цикл 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

11 of 36

Цикл for

Что покажет приведенный ниже фрагмент кода?

print('A')

print('B')

for i in range(5):

print('C')

print('D')

print('E')

11

12 of 36

Цикл for

Что покажет приведенный ниже фрагмент кода?

print('A')

print('B')

for i in range(5):

print('C')

for i in range(5):

print('D')

print('E')

12

13 of 36

Примечания

Однократное выполнение тела цикла называется итерацией цикла

Слово for пишется маленькими буквами

Первая строка цикла должна заканчиваться двоеточием (:)

Тело цикла должно быть выделено отступом

13

14 of 36

Переменная цикла

15 of 36

Цикл for: переменная цикла

for название переменной in range(количество повторений):

блок кода

Не совсем понятно, для чего нужна и как работает переменная цикла.

15

Структура цикла for в Python выглядит так:

16 of 36

Цикл for: переменная цикла

for i in range(10):

print(i)

Что покажет приведенный выше фрагмент кода?

16

Рассмотрим следующий код:

17 of 36

Цикл 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

18 of 36

Цикл 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.

19 of 36

Имена переменных цикла

for i in range(5):

print(i)

0

1

2

3

4

for num in range(5):

print(num)

19

Для переменных цикла обычно используют буквы i, j, k.

Результат выполнения обеих программ:

20 of 36

Имена переменных цикла

for i in range(5):

print('Python - awesome!')

20

Переменная цикла i не используется в теле цикла:

21 of 36

Имена переменных цикла

for _ in range(5):

print('Python - awesome!')

Python - awesome!

Python - awesome!

Python - awesome!

Python - awesome!

Python - awesome!

21

Мы можем использовать символ нижнего подчеркивания _:

Результат выполнения такой программы:

22 of 36

Примечания

Следует помнить, что правая граница цикла в 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 of 36

Задача:

  • На вход программе подается натуральное число n.
  • Напишите программу, которая печатает звездный прямоугольник размерами n×19.
  • Формат входных данных�На вход программе подаётся натуральное число n ∈ [1; 20] — высота звездного прямоугольника.
  • Формат выходных данных�Программа должна вывести звездный прямоугольник размерами n×19.

23

24 of 36

Функция range

25 of 36

Функция 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

26 of 36

Функция 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

27 of 36

Функция range с двумя параметрами

Функция range(n, m) генерирует последовательность чисел �от n до m-1 с шагом 1, а цикл for последовательно перебирает эту последовательность.

for i in range(3, 7):

хлопнуть в ладоши(i раз)

Переменная i принимает последовательно значения: 3, 4, 5, 6.

27

28 of 36

Функция 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

29 of 36

Функция range с тремя параметрами

Функция range(n, m, k) генерирует последовательность чисел от n до m-1 с шагом k, а цикл for последовательно перебирает эту последовательность.

for i in range(3, 10, 2):

присесть(i раз)

Переменная i принимает последовательно значения: 3, 5, 7, 9.

29

30 of 36

Функция 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

31 of 36

Отрицательный шаг

В случае отрицательного шага, мы должны гарантировать, что старт генерации (первый параметр) больше чем конец генерации (второй параметр).

for i in range(10, 3, -1):

сказать('Пока', назвать i)

Переменная i принимает последовательно значения: 10, 9, 8, 7, 6, 5, 4.

31

32 of 36

Отрицательный шаг

В случае отрицательного шага, мы должны гарантировать, что старт генерации (первый параметр) больше чем конец генерации (второй параметр).

for i in range(10, 3, -1):

print('Привет', i)

Переменная i принимает последовательно значения: 10, 9, 8, 7, 6, 5, 4.

32

33 of 36

Задача

Какую последовательность чисел даст вызов функции?

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 of 36

Задача

Какую последовательность чисел даст вызов функции?

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 of 36

Задачи:

35

Квадрат числа

На вход программе подается натуральное число n. Напишите программу, которая для каждого из чисел от 0 до n (включительно) выводит фразу: «Квадрат числа [число] равен [число]» (без кавычек).

Формат входных данных�На вход программе подается натуральное число n.

Формат выходных данных�Программа должна вывести текст в соответствии с условием задачи.

Последовательность чисел 1

Даны два целых числа m и n (mn). Напишите программу, которая выводит все числа от m до n включительно.

Формат входных данных�На вход программе подаются два целых числа m и n, каждое на отдельной строке.

Формат выходных данных�Программа должна вывести числа в соответствии с условием задачи.

36 of 36

Задачи:

36

Последовательность чисел 2

Даны два натуральных числа m и n (mn). Напишите программу, которая выводит все числа от m до n включительно удовлетворяющие хотя бы одному из условий:

число кратно 17;

число оканчивается на 9;

число кратно 3 и 5 одновременно.

Формат входных данных�На вход программе подаются два натуральных числа m и n (mn), каждое на отдельной строке.