Explicit Conversion Flag
Флаг явного преобразования используется для преобразования значения поля
Это поле можно использовать для переопределения поведения
В примере, в случае с флагом
#repr #str #format
Флаг явного преобразования используется для преобразования значения поля
format
перед его непосредственным форматированием.Это поле можно использовать для переопределения поведения
format
для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:!r
– преобразует значение в строку, используя функцию repr()
!s
– преобразует значение в строку, используя функцию str()
В примере, в случае с флагом
!r
строка 'Hello'
будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s
– без кавычек (в более удобном для чтения виде).#repr #str #format
Вычисляем размер объектов в памяти
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией
Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент
Функция
#sys #sizeof #oop
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией
sys.getsizeof(object[, default])
. Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент
default
позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError
.Функция
getsizeof
вызывает метод __sizeof__
объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.#sys #sizeof #oop
Какой тип взаимоотношений возможен между Фруктом и Папайей?
Anonymous Quiz
15%
Ассоциация
7%
Композиция
59%
Наследование
16%
Все вышеперечисленное
4%
Ничего из вышеперечисленного
Привет! В начале следующего месяца мы хотим запустить июльский поток наших курсов. Какая тема вам была бы наиболее интересна?
Anonymous Poll
35%
Telegram-боты
35%
Начальный Django
30%
Data Science
Прочитать произвольную строку из файла
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
Чтобы вывести это на экран, может помочь функция
#linecache #file
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
text.txt
:Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!
Чтобы вывести это на экран, может помочь функция
getline
из модуля linecache
. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline
кеширует все строчки файла в списке, так что следующие вызовы get_answer
отработают моментально.#linecache #file
Not a Number
В модуле
Эти объекты
Например можно создать подобный объект, просто передав строку
#nan #tips
В модуле
math
есть особый объект, который называется NaN
(Not a Number).Эти объекты
NaN
не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.Например можно создать подобный объект, просто передав строку
'nan'
во float
. Кстати говоря, это значит что вы можете использовать NaN
в качестве ключа в словаре (хотя мы и не советуем это делать).#nan #tips
Градиентный спуск: просто о сложном
Одним из самых часто используемых алгоритмов в машинном обучении является градиентный спуск, он применяется практически в каждой модели обучения.
Здесь вы изучите все, что вы хотели узнать о градиентном спуске, но боялись спросить.
Читать 7 минут
#статья
Одним из самых часто используемых алгоритмов в машинном обучении является градиентный спуск, он применяется практически в каждой модели обучения.
Здесь вы изучите все, что вы хотели узнать о градиентном спуске, но боялись спросить.
Читать 7 минут
#статья
Полезность модуля math
Сложно переоценить пользу модуля
Его стоит импортировать тогда, когда вам необходимо работать с математикой, но не требуется избыточность модуля
Модуль
#math #pi #inf
Сложно переоценить пользу модуля
math
, если имеешь дело с какими-либо математическими функциями. Модуль представляет собой обширный функционал для работы с числами.Его стоит импортировать тогда, когда вам необходимо работать с математикой, но не требуется избыточность модуля
numpy
. Например, можно импортировать число pi
, как в примере.Модуль
math
обеспечивает доступ к некоторым популярным математическим функциям и константам, к тому же он является встроенным (не нужно делать установку через pip
).#math #pi #inf
Логические any и all
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция
На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция
any
возвращает значение True
, если хотя бы одно из переданных утверждений верно, all
– в случае, если все верны.На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Время исполнения кода
Иногда приходится выбирать между несколькими вариантами кода, и часто отталкиваются от его скорости. Пример вычисления времени исполнения кода мы сейчас и покажем.
Всё достаточно просто: с помощью модуля
Если будете использовать этот пример, то просто вставьте свой код вместо комментария.
#трюки #time
Иногда приходится выбирать между несколькими вариантами кода, и часто отталкиваются от его скорости. Пример вычисления времени исполнения кода мы сейчас и покажем.
Всё достаточно просто: с помощью модуля
time
запоминаем начальное время, выполняем основной код, узнаём конечное время и просто высчитываем разницу. Если будете использовать этот пример, то просто вставьте свой код вместо комментария.
#трюки #time
Используем pathlib вместо os
Стандартная библиотека Python 3 содержит модуль pathlib, включающий в себя функцию
Одной из самых крутых фич в работе с путями является замена
По сути эта библиотека заменяет ранее используемые для работы с путями функции из модуля
#path #os
Стандартная библиотека Python 3 содержит модуль pathlib, включающий в себя функцию
Path()
, достаточную для полноценной работы с файловыми путями.Одной из самых крутых фич в работе с путями является замена
os.path.join()
на более удобный и элегантный вариант, изображенный на картинке.По сути эта библиотека заменяет ранее используемые для работы с путями функции из модуля
os
(например os.mkdir
или os.path
) на более удобные.#path #os
Комплексные числа в Python
Кроме уже известных вам типов
В Python комплексные числа представлены в виде x + iy. Python преобразует реальные числа x и y в комплексное с помощью функции
Это число можно превратить в строку с помощью
Хотя данный тип и является встроенным, для полноценной работы с комплексными операциями понадобится модуль
#complex #cmath
Кроме уже известных вам типов
int
, float
и подобных, в Python существует еще один довольно интересный тип, а именно, complex
.В Python комплексные числа представлены в виде x + iy. Python преобразует реальные числа x и y в комплексное с помощью функции
complex(x,y)
.Это число можно превратить в строку с помощью
str
, посчитать его модуль с помощью abs
, а также для доступа к его реальной или мнимой части можно воспользоваться функциями real()
и imag()
.Хотя данный тип и является встроенным, для полноценной работы с комплексными операциями понадобится модуль
cmath
.#complex #cmath
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
#ipaddress
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
ipaddress
.Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
ipaddress
есть и много других интересных возможностей, прочитать о которых можно здесь.#ipaddress
Красивый вывод таблиц
Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль
Итак, имена столбцов задается с помощью атрибута
Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод
#трюки #prettytable
Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль
prettytable
, который позволяет красиво выводить таблицы.Итак, имена столбцов задается с помощью атрибута
table.field_names
. А добавлять строки с данными в таблицу можно методом table.add_row([])
, передавая туда список элементов.Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод
table.get_string()
.#трюки #prettytable
Дополнение про prettytable
А вот результат на картинке, который получился при выводе
P. S. Также советуем почитать их гитхаб – там ещё больше примеров.
#трюки #prettytable
А вот результат на картинке, который получился при выводе
table
через стандартную функцию print()
.P. S. Также советуем почитать их гитхаб – там ещё больше примеров.
#трюки #prettytable
Fast QR (@fastqr_bot)
Всем привет! Мы вводим новую рубрику, в которой будем показывать проекты своих подписчиков. Сегодня у нас крайне полезный Telegram-бот.
Вы присылаете боту ссылку на веб-ресурс – он вам в ответ QR-код со спрятанной ссылкой. Также можете отправить картинку, на фоне которой будет создан код. И полезно, и красиво.
Скрипт реализован на всеми любимом
P. S. Присылайте свои проекты мне в личные сообщения – @a1f20. В следующее воскресенье расскажу ещё об одном проекте.
#проектподписчика
Всем привет! Мы вводим новую рубрику, в которой будем показывать проекты своих подписчиков. Сегодня у нас крайне полезный Telegram-бот.
Вы присылаете боту ссылку на веб-ресурс – он вам в ответ QR-код со спрятанной ссылкой. Также можете отправить картинку, на фоне которой будет создан код. И полезно, и красиво.
Скрипт реализован на всеми любимом
python-telegram-bot
, а сам код написан достаточно хорошо, берите с таких проектов пример. Ну и конечно же вот исходники – github.com/awitwicki/fastqr_bot.P. S. Присылайте свои проекты мне в личные сообщения – @a1f20. В следующее воскресенье расскажу ещё об одном проекте.
#проектподписчика
Параметры функции *args, **kwargs
Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что
В примере функция принимает обязательный аргумент
В целом, конструкция с
#functions #arguments
Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что
args
и kwargs
– общепринятые имена переменных, а разбирать мы будем звездочки перед ними.В примере функция принимает обязательный аргумент
value
, а остальных аргументов она как бы не ожидает. В таком случае *args
упаковывает все не именованные аргументы в кортеж, а **kwargs
– все именованные в словарь.В целом, конструкция с
*args, **kwargs
получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.#functions #arguments