Функция range() в Python

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

Циклы в питоне: for, range

Перед тем, как непосредственно перейти к функции range, стоит напомимать вам о циклах. Что такое циклы? Это процесс, который повторяется многократно.

numbers = [‘one’, ‘two’, ‘three’]
for number in numbers:
print(number)
one
two
three

В данном случае, цикл пробежался по всему списку и выполнил над каждым элементов определенное действие, а именно вывел на экран.

Python: функция range()

Функция range позволяет нам генерировать последовательные числа (далее на примерах все станет ясно). Он принимает обязательный параметр stop, до каких пор генерировать. Можно так же указать параметр start и step. Теперь к примерам.

for i in range(5):
print(i) => 0,1,2,3,4
for a in range(2, 7):
print(a) => 2,3,4,5,6
for b in range(2, 15, 3):
print(b) => 2,5,8,11,14

Верхний предел range включительно

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

for num in range(2, 7):
print(num) => 2,3,4,5,6

Как вы видите, на вернулись все числа от двойки до семи, но последнее было не включительно.

start = 1
stop = 9
step = 1
stop = stop + step
for num in range(start, stop, step):
print(num, end = «, «)

Чтобы избежать такого, мы можем использовать этот код. Тут после того, как к последнему значению мы прибавим шаг, функция будет работать включительно до последнего элемента.

Различия между range и xrange

В старых версия питона была так же функция xrange. Разница между двумя функциями в том, что xrange возвращала итератор, в то время как range список. В новых версиях осталась функция range, которая реализована как xrange.

Примеры функции python range()

Теперь я предлагаю, в качестве промежуточного задания взглянуть на несколько тестиков и попробовать понять как они работают.

for it in range(10, -1, -2):
… print(it, end = «, «)

for it in range(1, 7):
… print(it, end = «, «)

Ну что, справились? Если нет, то продолжайте читать. В первом случае наша точка старта равно 10. Точка стопа -1, а шаг, с которым мы двигаемся -2. Да, идти назад можно точно так же, как и вперед.

Если вы не знаете, что делает end, то мы и это поясним: end после каждый итерации цикла будет в конце ставить тот знак, который вы поставите.

for it in range(1, 7):
… print(it, end = «, «) => 1,2,3,4,5,6,
Или еще такой пример.
for it in range(1, 7):
… print(it, end = «abc «) => 1abc2abc3abc4abc5abc6abc

Очень удобная вещь, который можно пользоваться.

Декрементация с range()

range позволяет нам не только инкрементировать числа, но и декрементировать. Только по умолчанию она их все же инкрементирует, поэтому для декрементации необходимо ввести все три параметра.

for it in range(5, -1, -1):
… print(it, end = » «) => 5 4 3 2 1 0

Углубляемся в range()

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

print(range(3)[1]) => 1

print(range(3)[2]) => 2

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

print(range(6)[2:5])
# Результат: range(2, 5)

float и range()

Напоследок нам нужно рассмотреть еще один момент. Как можно было заметить, мы все время работали только с целыми числами, как быть с дробными? Давайте для начала в двух словах поговорим о типе данных float. float — это специальный тип данных, который может обрабатывать десятичные числа (или числа с плавающей точкой)

1.5 ; 12.75 и т. д.

Так вот, что будет если мы в range засунем именно их? Посмотрим на пример.

for i in range(3.3):
print(i)
Traceback (most recent call last):
File «<stdin>», line 1, in <module>
TypeError: ‘float’ object cannot be interpreted as an integer

Нам выдалась ошибка. Отсюда делам вывод, что range работает только с целыми числами

Тест на знание python

  1. Что делает функция range и для чего может быть полезна.
  2. В чем различия между range и xrange?
  3. a = 1
    b = 10
    for num in range(a, b + 1):
    print(num) => ????
    Что будет в результате? Объясните свой ответ.
  4. Что такое циклы?
  5. Как работает функция range с числами с плавающей точкой?
  6. Что такое end?

Вот и подошла к концу сегодняшняя статья. Хоть тема и не сказать сложная, однако и она требует какой-никакой практике, поэтому прямо сейчас идите в редактор кода и напишите простенькую программу, используя полученные сегодня знания. Удачи вам и всегда помните: чтобы стать программистом надо очень много практиковаться!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *