Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173

Некорректная работа функции range

11.03.2017, 07:25. Показов 4074. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что-то функция range в третьем Python работает так
Python
1
range(8)
>>range(0,8)
и т.д. - Что это такое?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2017, 07:25
Ответы с готовыми решениями:

Некорректная работа модуля
Доброго времени суток. Написал модуль, в котором создается класс. При копировании кода из файла модуля в idle класс работает корректно. Но,...

Некорректная работа
Подскажите пожалуйста. Поставил win10, как-то сразу криво пошла установка anaconda. Запуск только через bat .... теперь выполняю...

Некорректная работа DateFieldListFilter
Доброго часу. Есть встроенный фильтр по датам в Django: DateFieldListFilter, решил я добавить туда свою фильтрацию: self.links += ((...

10
0 / 0 / 2
Регистрация: 28.02.2017
Сообщений: 29
11.03.2017, 08:04
range работает нормально,это стандартно.
Смотря с какой целью нужно. Можно получить список
Python
1
list(range(8))
кортеж
Python
1
 tuple(range(8))
Python
1
2
 for i in range(8):
    print(i) # для получения чисел
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.03.2017, 10:40
Цитата Сообщение от SKY_SHY Посмотреть сообщение
Что-то функция range в третьем Python работает так
Python
1
range(8)
>>range(0,8)
и т.д. - Что это такое?)
А что не понравилось? Если указан только один аргумент n, то range выдает последрвательность от нуля до n-1 с шагом 1

range(8), range(0,8) и range(0,8,1) эквивалентны
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.03.2017, 12:21
Цитата Сообщение от oldnewyear Посмотреть сообщение
А что не понравилось
Да, видимо, что "ленивой" она стала :-). Как раньше xrange.
------------------------
И кто-то (lambda x:x['ТС']) забывает читать документацию.
0
in code we trust
 Аватар для __py__
133 / 162 / 12
Регистрация: 29.02.2016
Сообщений: 885
11.03.2017, 13:28
Цитата Сообщение от СергейЧА Посмотреть сообщение
Смотря с какой целью нужно. Можно получить список
Python
Выделить код
1
list(range(8))
кортеж
Python
Выделить код
1
tuple(range(8))
или множества
Python
1
set(range(5))
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
11.03.2017, 16:21
Цитата Сообщение от Garry Galler Посмотреть сообщение
Да, видимо, что "ленивой" она стала :-). Как раньше xrange.
Если бы она была ленивой, то такое не было-бы возможно. Просто она возвращает объект range, а не список.
Python
1
2
3
4
5
r = range(5)
r[0]
0
r[3]
3
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.03.2017, 17:06
Цитата Сообщение от alex925 Посмотреть сообщение
Если бы она была ленивой, то такое не было-бы возможно
И тем не менее она ленивая (понятие 'ленивости' функции в разных языках фундаментально ничем не отличается), то есть вычисляет очередное значение только в момент обращения к нему.
То, что она еще и по индексу умеет возвращать - просто деталь реализации конкретного генератора.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
11.03.2017, 17:21
Garry Galler, Открой документацию и не увидишь там ничего о том, что она ленивая. range возвращает просто неизменяемую последовательность и все
range is actually an immutable sequence type
https://docs.python.org/3.5/li... func-range

Цитата Сообщение от Garry Galler Посмотреть сообщение
просто деталь реализации конкретного генератора.
К генератору невозможно обращаться по индексу, просто в принципе. Он только выдает каждое следующие значении (не сохраняя предыдущие) и все. Иначе это уже не генератор.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.03.2017, 17:41
Ок. Сколько занимает в памяти это неизменяемая последовательность?
Python
1
range(10000000000000000000000000000000000000000000000000000000000000000000000000000000)
P. S. Это все еще не "ленивая" последовательность?

Добавлено через 1 минуту
Цитата Сообщение от alex925 Посмотреть сообщение
Он только выдает каждое следующие значении (не сохраняя предыдущие) и все. Иначе это уже не генератор.
Генератор как раз сохраняет состояние, иначе как бы он знал с какой точки делать возврат.

Добавлено через 16 минут
Цитата Сообщение от alex925 Посмотреть сообщение
Открой документацию
И читаем ниже:
The advantage of the range type over a regular list or tuple is that a range object will always take the same (small) amount of memory, no matter the size of the range it represents (as it only stores the start, stop and step values, calculating individual items and subranges as needed).
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
11.03.2017, 17:42
Цитата Сообщение от Garry Galler Посмотреть сообщение
Генератор как раз сохраняет состояние
Я о том, что он не знает предыдущие состоянии и будущие тоже, по этому по нему нельзя пробегаться туда обратно.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.03.2017, 17:45
Цитата Сообщение от alex925 Посмотреть сообщение
по этому по нему нельзя пробегаться туда обратно
А вот вычислить отдельное значение запрошенное по индексу - запросто.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2017, 17:45
Помогаю со студенческими работами здесь

Некорректная работа requests
Всем привет,я создал бесконечный цикл в котором идёт GET-запрос на сервер после идёт задержка.Так вот,если отправить этот GET-запрос через...

py2exe и cx_freeze некорректная работа
Есть GUI приложение с использованием wxPython для Python 2.7 при запуске cx_freeze создается exe-файл, но надписи на кнопках не...

Работа с INI: некорректная работа пользовательской функции
Ранее нашел код для работы с ini-файлами: public class INI { /// <summary> /// Чтение...

Некорректная работа функции
Язык Си, суть программы - подсчитать кол-во единиц в двоичном представлении десятичного числа, объясните, пожалуйста, почему функция binary...

Некорректная работа функции Dir
Функция Dir с параметром vbDirectory должна выдавать список папок в указанном каталоге, НО... DOCUMENT PerfLogs PROG Program...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru