Цикл For в Питоне.

Сайт: Информатикс
Курс: Программирование в "Эврике"
Книга: Цикл For в Питоне.
Напечатано:: Гость
Дата: Пятница, 27 Июнь 2025, 04:05

1. Цикл с параметром.

Когда необходимо в программе несколько раз выполнить одну и ту же последовательность инструкций, используются циклы. В этом листочке мы рассмотрим цикл for, также называется цикл с параметром. Параметром является переменная, также называемая счетчиком, которая принимает значения из заданного списка. Тело цикла будет выполнено столько раз, сколько элементов содержит заданный список.

Инструкция for

Синтаксис инструкции for такой:

     for переменная in список:
         инструкция 1
         инструкция 2
         ...
         инструкция n

где переменная — идентификатор переменной, которая будет изменяться внутри цикла, список — список значений, которые будет принимать переменная. Список заключается в квадратные скобки, элементы списка разделяются запятыми. Затем идет блок инструкций, выполняемых в цикле. Как и в случае с условной инструкцией, блок должен быть выделен отступом. Пример:

     for number in ["раз","два","три","четыре","пять"]:
         print number, ","
     print "Вышел зайчик погулять"

В этом примере number — это переменная, которая изменяется в цикле. Она принимает значения из списка, в котором пять элементов: текстовые строки "раз", "два", "три", "четыре" и "пять" (текстовые строки необходимо заключаются в кавычки). Тело цикла состоит из одной инструкции print и эта инструкция будет выполнена пять раз, при каждом выполнении переменная number будет принимать очередное значение из заданного списка. После выполнения цикла будет выполнена инструкция print для вывода строки "Вышел зайчик погулять".

2. Функция range.

Часто переменная в цикле должна принимать значения, являющиеся элементами арифметической прогрессии, например, все значения от 1 до n или значения 1, 3, 5, ..., 99. В этом случае для задания списка значений для переменной, изменяющейся в цикле, следует использовать функцию range. Эта функция генерирует список, элементы которого являются последовательными членами арифметической прогрессии. Полученный список можно присвоить переменной при помощи оператора присваивания, вывести на экран при помощи инструкции print или сразу же использовать в инструкции for.

У функции range может быть один, два или три параметра. Рассмотрим функцию range с одним параметром. Следующая программа

     print range(5)
     print range(8)

выведет на экран два списка: [0, 1, 2, 3, 4] и [0, 1, 2, 3, 4, 5, 6, 7]. Таким образом, функция range(n) возвращает список из n целых чисел от 0 до n-1.

Рассмотрим функцию range c двумя параметрами. Программа

     print range(-1,5)
     print range(4,8)

напечатает списки [-1, 0, 1, 2, 3, 4] и [4, 5, 6, 7], значит, функция range(k,n) возвращает список из n-k целых чисел от k до n-1. Если же k≥n, то функция range(k,n) возвращает пустой список (равно как и функция range(n) если n≤0).

Теперь рассмотрим функцию range с тремя параметрами. Программа

     print range(-3,10,2)
     print range(7,-10,-3)

выведет на экран списки [-3, -1, 1, 3, 5, 7, 9] и [7, 4, 1, -2, -5, -8]. Таким образом, функция range(k,n,d) в случае положительного d возвращает арифметическую последовательность, в которой первый член равен k, разность равна d, а последний член — это наибольший член, который меньше n. Если же d<0, то последний член последовательности — это наименьший член, который больше n.

Параметрами функции range могут быть только целые числа. При подстановке в функцию range действительных чисел у них отбрасывается дробная часть.

Список, сгенерированный функцией range, можно использовать по-разному: вывести на экран (как это делается выше), присвоить переменной или использовать в инструкции for. Следующая программа по введенному пользователю числу n выводит на экран ровно n звездочек:

     n=input("Введите натуральное число ")
     for i in range(n):                        # Тело цикла будет
         print "*",                            # выполнено n раз

Следующая программа находит сумму всех целых чисел от 1 до n:

     n=input("Введите натуральное число ")
     S=0
     for i in range(1,n+1):       # i будет принимать значения 1, 2, 3, ...,n
         S=S+n