Цикл For в Питоне.
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