Функция range.
Технологии и методы программирования
В качестве аргумента функции range в примере задается длина списка. В этом случае создаваемый диапазон будет от 0 до len (lst) -1. Python не включает крайний правый элемент диапазона, так как длина списка всегда на 1 больше, чем индекс последнего его элемента (напоминаем, индексация списка начинается с нуля). В результате выполнения программы: Для решения этой задачи в Python предусмотрена… Читать ещё >
Функция range. Технологии и методы программирования (реферат, курсовая, диплом, контрольная)
Достаточно часто на практике при разработке программ необходимо получить диапазон целых чисел (рис. 4.34).
Рис. 434. Диапазон целых чисел.
Для решения этой задачи в Python предусмотрена функция range1. В качестве аргументов функция принимает начальное значение диапазона (по умолчанию 0), конечное значение (не включительно) и шаг (по умолчанию 1). Если вызвать функцию range в интерактивном режиме, то диапазона чисел мы не увидим[1][2]:
>" range (0,10,1) range (0, 10).
«> range (10) range (0, 10).
Для создания диапазона (неизменяемой последовательности) необходимо использовать, например, инструкцию for:
>" for i in range (0, 10, 1): print (i, end=' ').
- 123 456 789 «> for i in range (10): print (i, end=' ')
- 123 456 789
«> for i in range (2, 20, 2): print (i, end=' ').
2 4 6 8 10 12 14 16 18.
Таким образом, в переменную i на каждом шаге цикла (итерации) будет записываться значение из диапазона, который генерируется функцией range.
При желании можно получить диапазон в обратном порядке следования (обратите внимание на аргументы функции range):
>>> for i in range (20, 2, -2): print (i, end=' ').
20 18 16 14 12 10 8 6 4.
Теперь е помощью диапазона найдем сумму чисел на интервале от 1 до 100:
>>> total = 0.
>>> for i in ranged, 101): total = total + i.
>>> total 5050.
Переменной i на каждой итерации цикла последовательно присваиваются значения из диапазона от 1 до 100 (напоминаем, что крайнее правое значение не включается). На первой итерации переменная total содержит значение 0 (инициализировали total перед входом в цикл). В теле цикла сначала вычисляется правая часть инструкции присваивания, т. е. total + i. Переменная i на первом шаге содержит значение 1 (первое значение из диапазона), таким образом, правая часть инструкции присваивания будет равна значению 1. Это значение помещается в левую часть, т. е. присваивается переменной total. На втором шаге total уже будет содержать значение 1, i — 2, т. е. правая часть инструкции присваивания станет равна 3, далее это значение помещается в переменную total и т. д., до конца диапазона, т. е. до значения 100. По окончании цикла в total будет содержаться искомая сумма чисел.
В Python возможно более элегантное решение данной задачи в функциональном стиле:
>" sum (list (range (1 r 101))).
Это решение требует небольших пояснений. Диапазоны можно использовать при создании списков:
>>> list (range (10)).
[0, 1, 2, 3, 4, 5, б, 7, 8, 9].
>" list (range (2 # 10, 2)).
[2, 4, 6, 8].
Вызов функции sum для списка в качестве аргумента приводит к вычислению суммы элементов списка.
Диапазон, создаваемый функцией range, на практике часто используется для задания индексов. Следующий пример демонстрирует изменение списка путем умножения каждого из его элементов на 2:
# range_two.ру.
1st = [4, 10, 5, -1.9].
print (1st).
for i in range (len (1st)):
1st [i] = 1st[i] * 2 print (1st).
В качестве аргумента функции range в примере задается длина списка. В этом случае создаваемый диапазон будет от 0 до len (lst) -1. Python не включает крайний правый элемент диапазона, так как длина списка всегда на 1 больше, чем индекс последнего его элемента (напоминаем, индексация списка начинается с нуля). В результате выполнения программы:
[4, 10, 5, -1.9].
[8, 20, 10, -3.8].