Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2014 13:40:27

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

slice

сам разобраться не смог:
почему здесь не вызывается исключение?

b = [0, 1, 2, 3, 4]
print b[33:99]

Офлайн

#2 Окт. 3, 2014 14:09:38

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

slice

оператор : всегда возвращaет новый список, но т.к. элементы не сущеcтвуют, список пустой



Отредактировано Nata (Окт. 3, 2014 14:11:27)

Офлайн

#3 Окт. 3, 2014 14:12:43

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

slice

Nata
но т.к. элементы не сущеcтвуют
тогда так:
почему при несуществующих елементах не вызывается исключение?
начало среза за пределами диапазона

Отредактировано vrabey (Окт. 3, 2014 14:15:30)

Офлайн

#4 Окт. 3, 2014 14:30:16

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

slice

потому что так устроен оператор : , он сперва создает новый список (в памяти), а затем уже копирует туда адреса указанных элементов; даже если элементов нет, копия списка все равно создается; а почему не выдает ошибку при копировании элементов, это надо к создателю питона :)

то же самое с

>>> b[2:2]
[]
элементов там нет, возвращает пустой список



Отредактировано Nata (Окт. 3, 2014 14:52:43)

Офлайн

#5 Окт. 3, 2014 14:56:13

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

slice

vrabey
почему при несуществующих елементах не вызывается исключение?
Nata
почему не выдает ошибку при копировании элементов, это надо к создателю питона :)

Можно сказать, что исключение специально обрабатывается “изящно”. Кто-то не читал tutorial.



Отредактировано Budulianin (Окт. 3, 2014 14:57:46)

Офлайн

#6 Окт. 3, 2014 15:13:34

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

slice

вопрос думаю был не в том, как изящно обрабатывать исключения и прятать Tracebacks, а в том, почему они предпочли их спрятать, а не информировать пользователей, что элементы не существуют



Офлайн

#7 Окт. 3, 2014 15:19:55

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

slice

Nata
вопрос думаю был не в том

да нет просто не знал потому что
Budulianin
Кто-то не читал tutorial.
теперь буду


Офлайн

#8 Окт. 3, 2014 15:24:46

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

slice

Nata
вопрос думаю был не в том, как изящно обрабатывать исключения и прятать Tracebacks,
Я и не говорил, как это делать.

Я ответил на:
Budulianin
почему при несуществующих елементах не вызывается исключение?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version