О поиске в словарях

При разборе вложенных структур из словарей и списков (например, конфигов), удобно пользоваться блоком try-except. Ловим IndexError, если индекс отсутствует в списке, и KeyError, если ключ отсутствует в словаре. Однако, лучше ловить LookupError, который является предком обоих исключений: Пример: Независимо от того, не найден ли будет какой-то ключ словаря или индекс списка – будет поймана одна…

Майним красивый Bitcoin адрес на Python

Сегодня покажу, как найти (намайнить) себе красивый адрес Bitcoin кошелька. Красивый адрес, значит, что его первые несколько символов будут заданым нами словом. Я буду использовать библиотеку bit, если вы с ней еще не знакомы, прочтите эту статью. Здесь нам очень кстати будет высокая скорость этой библиотеки в плане генерации кошельков. Итак, я хочу, чтобы мой…

«Сломанный» set

Вопрос: может ли set содержать два одинаковых объекта? Ответ: да, запросто! Делаем класс: Как это? set запоминает хэш объекта при вставке, а потом не следит за тем, меняется ли как-то объект или нет, это было бы очень накладно. Изначально мы вставляли 20, но потом уже поменяли его на 30, тем самым сломав set. «Починить» такой…

Munch – вседозволенный объект

Привет. Хочу познакомить вас библиотекой Munch, которая является форком более старой библиотеки Bunch. Рассмотрим суть проблемы, которую она решает. Задать атрибуты объекта, не описывая их по одному в конструкторе. Легче понять на примере: Видно, что object нам не поможет. Но в Python 3 можно сделать пустой класс, это не вызовет ошибки: И в принципе этого…

​​Анимация Jupyter Notebook

Сегодня мы будем анимировать график прямо внутри Jupyter Notebook. Сперва сделаем плавную отрисовку графика. Переключим режим отображения графиков в notebook: Импортируем все, что нужно: Сгенерируем наши данные: Создадим пустой график: Функция animate будет вызываться при отрисовка каждого кадра, аргумент i – номер кадра: Запускаем анимацию: Если мы хотим анимировать сами данные, например, заставить синусоиду «плясать»,…