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

1655995217 funkcziya python range – razyasnyaetsya s primerami koda

В Python можно использовать range() функция, чтобы получить последовательность индексов для цикла итерации. Вы будете часто использовать range() в сочетании с а for петля.

В этом учебнике вы узнаете разные способы использования range() функция – с явными индексами начала и завершения, пользовательским размером шага и отрицательным размером шага.

Давайте приступим.

Понимание Python range() Функция

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

The range() Функция возвращает объект диапазона.
Этот объект диапазона, в свою очередь, возвращает последовательные элементы последовательности, когда вы перебираете его.

Как указано выше, функция диапазона не возвращается список индексов Скорее он возвращает объект диапазона, который возвращает индексы, когда они вам нужны. Это также делает его эффективным для памяти.

Вы можете использовать range() функция с таким общим синтаксисом:

range(start,stop,step)

Когда вы используете этот синтаксис в сочетании с циклом, вы можете получить последовательность индексов из start к, но не включая stop шагами step.

  • Вы должны указать требуется аргумент stop, которое может являться любым натуральным числом. Если вместо этого указать число с плавающей запятой, вы столкнетесь с a TypeError как показано:
my_range = range(2.5)
изображение-24
  • Если вы не укажете start индекс, по умолчанию начальный индекс 0 используется.
  • Если вы не укажете step значение, в по умолчанию размер шага 1 используется.

В следующих разделах вы узнаете о различных способах использования range() функция.

Как пользоваться Python range() Функция циклического прохождения любой итеративной

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

range(stop)

Вы можете использовать приведенную выше строку кода, чтобы получить последовательность 0 через stop-1 : 0, 1, 2, 3,…, stop-1.

▶ Рассмотрите приведенный ниже пример, где вы звоните range() из 5 как аргумент. И вы перебираете возвращенный объект диапазона с помощью a for цикл, чтобы получить индексы 0,1,2,3,4, как ожидалось.

for index in range(5):
  print(index)
  
#Output
0
1
2
3
4

Если вы помните, все итерации в Python следуют нулевая индексация. Именно поэтому его удобно использовать range() для циклической переборки итераторов.

Итерация длины len имеет 0, 1, 2…, len-1 как действительные индексы Итак, чтобы пройти любую итерацию, все, что вам нужно сделать, это установить stop значение должно быть равным len. Последовательность, которую вы получите — 0, 1, 2…, len-1 – последовательность действительных индексов.

▶ Возьмем более полезный пример. У вас есть список my_list. Вы можете получить доступ ко всем элементам в списке, зная их индексы, и вы можете получить эти индексы, используя range() как показано ниже:

my_list = ["Python","C","C++","JavaScript","Julia","Rust","Go"]
for index in range(len(my_list)):
  print(f"At index {index}, we have {my_list[index]}")

Помните, что вы можете использовать встроенную функцию Python len чтобы получить длину любой итерации. В вышеприведенном коде вы используете как действительные индексы, так и элементы списка по этим действительным индексам. Вот результат:

изображение-25

Обратите внимание, как my_list имеет 7 пунктов, а полученные индексы, как и ожидалось, от 0 до 6.

Иногда вместо этого может потребоваться использовать отрицательные целые числа. В этом случае, если вы используете только stop аргумент, вы не получите желаемого результата, хотя код не выдает ошибку.

Это потому, что по умолчанию start значение считается таким 0и вы не можете сосчитать от 0 до -5.

for index in range(-5):
  print (index)
  
  
#Output
#NOTHING HERE

Как пользоваться Python range() Функция с явными индексами начала и конца

Возможно, вы не всегда хотите начинать с нуля. Вы можете начать с любого произвольного индекса, установив start значение к индексу, с которого вы хотите начать. Синтаксис таков:

range(start,stop)

В этом случае вы сможете получить последовательность: start, start + 1, start + 2и так далее до stop-1.

▶ В следующем примере вы начинаете с 10, считайте вплоть до, но не включая 15 на шагах по 1.

for index in range(10,15):
  print(index)

#Output
10
11
12
13
14

В предыдущем разделе вы видели, как использовать только файл stop аргумент не будет работать, когда вам требуются отрицательные целые числа. Однако, когда вы укажете start и stop индексы очевидно, вы также можете работать с отрицательными целыми числами.

▶ В этом примере вы пытаетесь подсчитать от -5 с шагом 1. Всегда помните, что подсчет останавливается на значении, которое на единицу меньше, чем stop индекс.

for index in range(-5,0):
  print(index)
  
#Output
-5
-4
-3
-2
-1

Как пользоваться Python range() Функция с а Специальный размер шага

Вместо того чтобы последовательно обходить итерационный элемент, иногда вы можете захотеть пройти через него, получив доступ к каждому k-й элемент. Это когда необязательно step аргумент пригодится. Общий синтаксис показан ниже:

range(start,stop,step)

Когда вы используете этот синтаксис и перебираете объект диапазона, вы можете перейти с start до stop-1 с шагами размера step.

  • Вы получите последовательность: start, start + step, start + 2*stepи так далее до start + k*step такой, что start + k*step < stop и start + (k+1)*step > stop.

▶ В следующем примере вы хотите перейти от 0 до 20 с шагом 2. Обратите внимание, что последний напечатанный индекс равен 19. Это потому, что если вы сделаете еще один шаг, вы получите 21, что больше 20.

Всегда помните, что последнее значение, которое вы получите, может быть максимально близким stop насколько это возможно, но никогда не может быть stop.

for index in range(1,20,2):
  print(index)

#Output
1
3
5
7
9
11
13
15
17
19

Как пользоваться Python range() Функция с Отрицательный размер шага

Пока что вы научились пользоваться range() функция с start и stop индексы и определенный размер шага, все время подсчитывая от start до stop.

Если вам нужно отсчет от целого числа, вы можете указать отрицательное значение для step. Общий синтаксис:

range(start,stop,<negative_step>)
  • Теперь объект диапазона можно использовать для возвращения последовательности, ведущей обратный отсчет start шагами negative_stepдо, но не в том числе stop.
  • Возвращенная последовательность есть start, start - negative_step, start - 2*negative_stepи так далее до start - k*negative_step такой, что start - k*negative_step > stop и start - (k+1)*negative_step < stop.
  • Не имеет значения по умолчанию для отрицательного шага – вы должны установить negative_step = -1 для обратного отсчета, охватывая каждое число.

▶ В этом примере вы хотите вести обратный отсчет от 20 с шагом -2. Таким образом, последовательность 20, 18, 16, вплоть до 2. Если вы пойдете еще на 2 шага ниже, вы достигнете 0, чего не можете, поскольку он меньше значения остановки 1.

for index in range(20,1,-2):
  print(index)
  
#Output
20
18
16
14
12
10
8
6
4
2

Это легко увидеть start > stop чтобы иметь возможность отчислить.

for index in range(10,20,-1):
  print(index)
  
 #Ouput
 #Nothing is printed - the sequence is empty.

▶ В приведенном выше примере вы пытаетесь отсчитать от 10 до 20, что невозможно. И вы не получите ожидаемого результата.

Как пользоваться Python range() и reversed() Функции проверки последовательности

Если вам нужно получить доступ к элементам iterable в обратном порядке, вы можете использовать range() функция в сочетании с reversed() функция.

Встроенный Python reversed() функция возвращает обратный итератор над значениями заданной последовательности.

▶ Давайте возьмем первый пример, где мы использовали range(5). В следующем примере мы вызываем reversed() объект диапазона. И мы видим, что мы отчислили от 4 до 0.

for index in reversed(range(5)):
  print (index)
  
#Output
4
3
2
1
0

Как видите, это эквивалентно использованию range(4,-1,-1). Если вы предпочитаете, вы можете использовать reversed() функция вместо negative_step аргумент, рассмотренный в предыдущей главе.

Вывод

В этом учебнике вы узнали о разных способах использования range() функция. Можно попробовать несколько примеров, чтобы каждый раз получить другую последовательность. Эта практика поможет вам воспользоваться range() эффективно при циклическом переборе итераторов.

Счастливого кодирования! К следующему уроку.🙂

Добавить комментарий

Ваш адрес email не будет опубликован.