Помощь в написании студенческих работ
Антистрессовый сервис

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

  • [1] Подробнее см. https://docs.python.Org/3.6/library/stdtypes.html#range.
  • [2] Функция range вернула объект типа range. Интересно, что range для экономии места хранит в памяти только начало, окончание и шаг диапазона.
Показать весь текст
Заполнить форму текущей работой