Главная страница

Решение задач Аннотация. Урок посвящен циклу for


Скачать 3.04 Mb.
НазваниеРешение задач Аннотация. Урок посвящен циклу for
Дата28.06.2022
Размер3.04 Mb.
Формат файлаdocx
Имя файла5. Python.docx
ТипРешение
#618203
страница4 из 23
1   2   3   4   5   6   7   8   9   ...   23

Тема: цикл for, функция range 


  1. Цикл for

  2. Функции range() с одним параметром

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

  4. Функции range() с тремя параметрами

  5. Решение задач

Аннотация. Урок посвящен циклу for, в частности функции range(), которая позволяет генерировать последовательность чисел. Изучим две дополнительные перегрузки функции range(), которые позволяют настраивать элементы последовательности.

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


Рассмотрим программный код:

for i in range(10):

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

Значение, которое мы указываем в скобках у функции range() обозначает количество итераций цикла, при этом переменная i принимает последовательно значения: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Если быть более точным, то мы говорим, что функция range(n) генерирует последовательность чисел от 0 до n-1, а цикл for последовательно перебирает эту последовательность.

Перегрузка range() с двумя параметрами


Если мы хотим начинать последовательность не с 0, а с какого-то другого числа, то мы можем использовать перегрузку функции range() принимающую два параметра. Например, вызов функции range(1, 5) сгенерирует последовательность чисел 1, 2, 3, 4  (будьте внимательны, правая граница не включительна). Если нам нужны числа от 1 до 5 включительно, то мы используем range(1, 6).

Таким образом:

  • range(n): создает последовательность чисел 0, 1, 2, 3, ..., n - 1;

  • range(n, m): создает последовательность чисел n, n + 1, n + 2, ..., m - 2, m - 1.



Напишем программу, которая выводит те числа из промежутка [100;999], которые оканчиваются на 7.

Используя функцию range() с двумя параметрами, получаем:

for i in range(100, 1000): # перебираем числа от 100 до 999

if i % 10 == 7: # используем остаток от деления на 10, для получения последней цифры

print(i)

Обратите внимание, в качестве второго параметра мы передали число 1000.

Если первый параметр больше второго, то функция range() генерирует пустую последовательность. Например, вызов функции range(10, 1) приводит к генерации пустой последовательности.

Перегрузка range() с 3 параметрами


Передавая два параметра в функцию range() мы можем генерировать любую последовательность целых чисел с шагом 1. Но, что делать если нужно поменять шаг? Как быть если мы хотим сгенерировать последовательность чисел 5, 10, 15, 20, 25? В этом случае существует еще одна перегрузка функции range(), принимающая три параметра: range(n, m, k). Первый параметр задает старт последовательности, второй параметр задает стоп последовательности и третий – шаг генерации чисел.

Например, вызов функции range(1, 10, 2) создаст последовательность чисел 1, 3, 5, 7, 9, а вызов функции range(5, 30, 5) сгенерирует последовательность 5, 10, 15, 20, 25.

Напишем программу, которая выводит все четные числа из промежутка [56;170].

Используя функцию range() с тремя параметрами, получаем:

for i in range(56, 171, 2):

print(i)

Обратите внимание, мы можем использовать функцию range() с двумя параметрами:

for i in range(56, 171):

if i % 2 == 0:

print(i)

однако такой код получается менее эффективным.
1   2   3   4   5   6   7   8   9   ...   23


написать администратору сайта