Получаем информацию по IP
C помощью
Атрибуты
Установка возможна через пакетный менеджер
C помощью
ip2geotools можно получить геолокацию по IP из нескольких баз данных. Метод get из класса DbIpCity позволяет получить информацию по желаемому IP бесплатно. Атрибуты
city, region, country хранят информацию соответственно о городе, регионе и стране. Обратившись к атрибутам latitude и longitude, можно получить широту и долготу. Установка возможна через пакетный менеджер
pip. Документация доступна по ссылке.Метод
У словарей есть метод
Если такого ключа в словаре нет, исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же
В примере мы не передаём второй аргумент, и в переменную name попадает
get у словарейУ словарей есть метод
get, который возвращает значение по переданному ключу. Если такого ключа в словаре нет, исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же
None, если второй аргумент не передан.В примере мы не передаём второй аргумент, и в переменную name попадает
None. Полезнее было бы передать ещё какую-нибудь строку в метод get, и она бы подставилась в name.Валидаторы данных
Не стоит писать собственные регулярные выражения для валидации почты и URL.
Модуль
Не стоит писать собственные регулярные выражения для валидации почты и URL.
Модуль
validators даёт возможность использовать уже готовые валидаторы для самых распространенных задач. Документация доступна здесь.Template из string
Класс Template — это такой легаси-способ форматировать строки. Полезно знать, как он работает, чтобы не растеряться при встрече со старым кодом.
Данный способ поддерживает передачу переменных по имени и использует $-синтаксис. В актуальных проектах, конечно, использовать его не стоит, f-строки гораздо проще.
Класс Template — это такой легаси-способ форматировать строки. Полезно знать, как он работает, чтобы не растеряться при встрече со старым кодом.
Данный способ поддерживает передачу переменных по имени и использует $-синтаксис. В актуальных проектах, конечно, использовать его не стоит, f-строки гораздо проще.
Method Resolution Order
В Python существует так называемый порядок разрешения методов в классе. Это порядок, где Python ищет нужный атрибут или метод.
Его можно получить при помощи атрибута
Атрибут быстрее всех будет найден именно в классе
В Python существует так называемый порядок разрешения методов в классе. Это порядок, где Python ищет нужный атрибут или метод.
Его можно получить при помощи атрибута
__mro__. Если мы в примере обратимся к val, Python будет искать сначала в классе A, далее в B, затем в C и потом в object. Атрибут быстрее всех будет найден именно в классе
B и будет равен значению 1.Логирование с loguru
Библиотека loguru позволяет упростить логирование в разы, а также настраивается под любой проект. Установка командой
Библиотека loguru позволяет упростить логирование в разы, а также настраивается под любой проект. Установка командой
pip install loguru, импорт объекта logger — и вы можете быстро и безопасно печатать в консоль все необходимые данные. Углубиться в функционал библиотеки можно по ссылке.Что будет выведено на экран?
Anonymous Quiz
19%
[1] [] [2]
33%
Исключение
10%
1 0 2
23%
1 [] 2
15%
Другое
Календарь в Python
Существует замечательный встроенный модуль
Существует замечательный встроенный модуль
calendar, позволяющий работать с датами. Некоторые возможности, такие как проверка, високосный ли год, показаны на картинке. Для углубления в работу с модулем можно ознакомиться с документацией.Какая из перечисленных инструкций выполнится быстрее всего при n = 10 ** 6?
Anonymous Quiz
16%
arr = list(i for i in range(n))
29%
arr = [i for i in range(n)]
41%
arr = (i for i in range(n))
14%
arr = {i for i in range(n)}
Быстрый deque
Для
deque предпочтительнее, чем обычный список, когда нужны более быстрые операции добавления и вытаскивания элементов с начала и конца контейнера.deque обеспечивает линейную сложность O(1) для операций добавления и выталкивания, у стандартного списка сложность по этим операциям O(n).Для
deque есть возможность использовать стандартные функции — sum, min, max и другие.Случайные числа с модулем random
Иногда возникает необходимость быстро получить случайное число из заданного диапазона, либо из массива. Существует встроенный модуль random (установка не требуется), имеющий множество функций для работы со случайными числами.
В первом примере мы получаем случайное число от 1 до 10, при этом последняя переданная единица — шаг, т. е. если бы мы передали не её, а например двойку, случайное число бы искалось из диапазона 1, 3, 5 и т. д.
С документацией можно ознакомиться по ссылке.
Иногда возникает необходимость быстро получить случайное число из заданного диапазона, либо из массива. Существует встроенный модуль random (установка не требуется), имеющий множество функций для работы со случайными числами.
В первом примере мы получаем случайное число от 1 до 10, при этом последняя переданная единица — шаг, т. е. если бы мы передали не её, а например двойку, случайное число бы искалось из диапазона 1, 3, 5 и т. д.
С документацией можно ознакомиться по ссылке.
Лямбда-функции
Это удобный способ создавать функции в одну строчку, но новичков он часто ставит в тупик. Для создания лямбда-функции необходимо присвоить ей значение, начинающееся со слова lambda, после которого через запятую указать переменные, а затем через двоеточие разместить тело функции. Писать return не надо — автоматически возвращается вычисленное значение.
Это удобный способ создавать функции в одну строчку, но новичков он часто ставит в тупик. Для создания лямбда-функции необходимо присвоить ей значение, начинающееся со слова lambda, после которого через запятую указать переменные, а затем через двоеточие разместить тело функции. Писать return не надо — автоматически возвращается вычисленное значение.
Проигрывание аудио с playsound
Данный пакет содержит всего одну функцию для проигрывания аудиофайлов. На вход эта функция принимает адрес файла в файловой системе компьютера.
Данный пакет содержит всего одну функцию для проигрывания аудиофайлов. На вход эта функция принимает адрес файла в файловой системе компьютера.