Как вывести содержимое range на экран

Раздел: Встроенные функции -> Итерация и вывод

Печать значений range

В Python 3 range возвращает объект неизменяемой последовательности целых чисел. Вызов print(range(5)) отображает 'range(0, 5)', но не элементы. Для вывода содержимого range применяется преобразование в list или распаковка.

Основной способ увидеть элементы range состоит в преобразовании его в список.

print(list(range(5)))

Print range python 3 (вывод range в python 3)

[0, 1, 2, 3, 4]

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

print(*range(5))
0 1 2 3 4

Звёздочка передаёт каждый элемент range как отдельный аргумент функции print.

Как получить список из range для последующего вывода?

Подходит встроенная функция list, которая создаёт список со всеми числами.

numbers = list(range(2, 12, 3))
print(numbers)
[2, 5, 8, 11]

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

Как напечатать элементы range через пробел без дополнительных знаков?

Оператор распаковки * решает задачу. Функция print по умолчанию вставляет пробел между аргументами.

print(*range(6))
0 1 2 3 4 5

Параметр sep меняет разделитель:

print(*range(4), sep='-')
0-1-2-3

Как вывести каждый элемент range на отдельной строке?

Цикл for перебирает значения range напрямую.

for i in range(5, 8):
    print(i)
5
6
7

Для вывода в одну строку с нужным окончанием применяется параметр end.

for i in range(4):
    print(i, end=' ')
0 1 2 3 

Как вывести range с запятой или другим разделителем без цикла?

Превращение чисел в строки и метод join дают полный контроль над форматом.

print(', '.join(map(str, range(7))))
0, 1, 2, 3, 4, 5, 6

Функция map преобразует каждое число в строку, метод join объединяет их через заданный разделитель.

Можно ли вывести range в виде кортежа?

Да, для этого существует функция tuple.

print(tuple(range(3)))
(0, 1, 2)

Кортеж занимает меньше места, чем список, но тоже хранит все элементы сразу.

Распространённая ошибка связана с попыткой получить элементы через print(range(...)). В Python 3 такой вызов показывает только описание объекта. Нужно явно преобразовывать range в list или распаковывать через *.

Создание списка из огромного range может исчерпать память. Если элементы нужны по одному, лучше выполнять обработку в цикле. Передача большого range через * также создаёт много аргументов и способна вызвать переполнение.

Практические примеры вывода range

Ниже приведены разные сценарии использования range с печатью. Все примеры выполняются в Python 3.

Базовое преобразование в список:

Пример
print(list(range(5)))
[0, 1, 2, 3, 4]

Отрицательный шаг для обратного порядка:

Пример
print(list(range(10, 0, -2)))
[10, 8, 6, 4, 2]

Распаковка с нестандартным разделителем:

Пример
print(*range(1, 6), sep=' -> ')
1 -> 2 -> 3 -> 4 -> 5

Строка ' -> ' подставлена между элементами.

Метод join для формирования строки:

Пример
print(' + '.join(map(str, range(1, 5))))
1 + 2 + 3 + 4

Матрица из нескольких строк range:

Пример
for row in range(3):
    print(*range(row * 3, row * 3 + 3))
0 1 2
3 4 5
6 7 8

Печать только чётных чисел:

Пример
for number in range(10):
    if number % 2 == 0:
        print(number)
0
2
4
6
8

Список квадратов чисел из range:

Пример
print([x * x for x in range(5)])
[0, 1, 4, 9, 16]

Кортеж из range и проверка его типа:

Пример
print(tuple(range(4)))
print(type(range(4)))
(0, 1, 2, 3)
<class 'range'>

Срез диапазона range:

Пример
r = range(10)
print(list(r[2:5]))
[2, 3, 4]

Срез возвращает новый объект range, поэтому требуется преобразование в список для просмотра.

Использование enumerate для пар индекс значение:

Пример
for idx, value in enumerate(range(5, 10)):
    print(idx, value)
0 5
1 6
2 7
3 8
4 9

Дробные значения, полученные из range:

Пример
print([x / 10 for x in range(0, 10)])
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

Объединение нескольких диапазонов при печати:

Пример
print(*range(2), *range(5, 7))
0 1 5 6

Оператор * применим к каждому диапазону отдельно.

Генерация строки битов:

Пример
print(''.join(str(b) for b in range(2)))
01

Построчная печать с индексами строк:

Пример
for i in range(3):
    print(f'Строка {i}:', *range(i * 2, i * 2 + 2))
Строка 0: 0 1
Строка 1: 2 3
Строка 2: 4 5

Вывод range в Python 3 - comments

En
Print range python 3 (python)