Forwarded from Python Academy
Получаем календарь
В модуле
Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
#calendar
В модуле
calendar есть функция month(), которая вернет календарь указанного месяца в виде строки, как показано в примере. А функция calendar() выдаст целый год.Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
#calendar
Forwarded from Python Academy
Создаем контекстный менеджер с помощью декоратора
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов:
Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор
Первая часть функции
#contextlib
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов:
__enter__ и __exit__. Но такой подход может показаться слегка сложным.Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор
@contextmanager из встроенного пакета contextlib.Первая часть функции
tag, которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть, которая идет после yield.#contextlib
Forwarded from Python Academy
Редирект вывода программы
В
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
В
contextlib есть еще один прикольный контекстный менеджер — redirect_stdout, позволяющий перенаправить стандартный вывод программы.Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
print() в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout.Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
Forwarded from Python Academy
ООП: композиция
Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией.
Как правило, в этом случае объект одного из классов (в примере выше это
Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора.
В таком случае необходимо использовать слабые ссылки из модуля
#классы #ооп
Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией.
Как правило, в этом случае объект одного из классов (в примере выше это
Salary) является полем другого (Employee). Сложного здесь, как вы видите, ничего нет.Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора.
В таком случае необходимо использовать слабые ссылки из модуля
weakref, о котором поговорим позже.#классы #ооп
Forwarded from Python Academy
Считаем ссылки на объект
В Python практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#ctypes
В Python практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#ctypes
Forwarded from Python Academy
Пакетный менеджер pip
Для работы с пакетами в Python есть специальная утилита
Установить или удалить пакет можно через команды
Команды
А с помощью
#pip
Для работы с пакетами в Python есть специальная утилита
pip — устанавливается она сразу вместе с интерпретатором.Установить или удалить пакет можно через команды
install и uninstall. После них нужно перечислить необходимые пакеты через пробел.Команды
list и freeze покажут все пакеты в текущем окружении, а также их версии. Обратите внимание на то, как выглядит вывод каждой из них.А с помощью
show можно посмотреть информацию о конкретном пакете: название, версию, описание, автора, лицензию и другое.#pip
Forwarded from Python Academy
Ключевое слово nonlocal
Похожее по функционалу на global, ключевое слово
Поведение
Основное различие с
#переменные #nonlocal
Похожее по функционалу на global, ключевое слово
nonlocal позволяет обращаться к переменным из нелокальной области видимости.Поведение
nonlocal заключается в том, что интерпретатор ищет переменную в ближайшей области видимости.Основное различие с
global в том, что с помощью nonlocal нельзя получить переменные из глобальной области видимости.#переменные #nonlocal
Forwarded from Python Academy
Работаем со временем без головной боли
При работе со временем и датами у встроенных модулей есть несколько неприятных моментов:
— Их слишком много:
— В них слишком много типов:
И вот на днях я наткнулся на пакет arrow, который их решает. Во-первых, там есть все необходимое. Во-вторых, все объекты имеют один и тот же тип
Большой плюс в том, что пакет совместим с основными встроенными типами. Например, выше я преобразовал
Еще из приятных бонусов: там есть функция
#время #arrow
При работе со временем и датами у встроенных модулей есть несколько неприятных моментов:
— Их слишком много:
datetime, time, calendar, dateutil, pytz и другие; — В них слишком много типов:
date, time, datetime, tzinfo, timedelta, relativedelta и т. д. И вот на днях я наткнулся на пакет arrow, который их решает. Во-первых, там есть все необходимое. Во-вторых, все объекты имеют один и тот же тип
Arrow. Большой плюс в том, что пакет совместим с основными встроенными типами. Например, выше я преобразовал
datetime в Arrow и обратно. Еще из приятных бонусов: там есть функция
humanize, которая конвертирует время в читаемый текст. #время #arrow
Forwarded from Python Academy
Вызов программ операционной системы
sh — это полноценный интерфейс, как альтернатива
Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция
#sh
sh — это полноценный интерфейс, как альтернатива
subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция. Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция
which, которая находит полный путь до программы либо возвращает None, если программа не найдена.#sh
Forwarded from Python Community
⚡️ Отсутствующие элементы в словаре
Словари довольно часто используются в работе, и вместо того, чтобы каждый раз получать ошибку при несуществующем ключе, можно просто переопределить её поведение.
В словарях вызывается метод
Примерно так же, как и на фото выше, реализован класс defaultdict из модуля collections.
#теория
Словари довольно часто используются в работе, и вместо того, чтобы каждый раз получать ошибку при несуществующем ключе, можно просто переопределить её поведение.
В словарях вызывается метод
__missing __, если ключа не существует, но унаследовав класс от dict и переопределив метод, мы можем изменить реакцию программы на отсутствующий ключ.Примерно так же, как и на фото выше, реализован класс defaultdict из модуля collections.
#теория
Forwarded from HABR FEED + OPENNET
#news Открытый вебинар «The Python Packaging»23 сентября в 16:30 в рамках цикла открытых технических семинаров компании Xperi
https://habr.com/ru/news/t/579264/?utm_campaign=579264&utm_source=habrahabr&utm_medium=rss
Tags: Python, C++, pip, virtualenv, c++, cuda
https://habr.com/ru/news/t/579264/?utm_campaign=579264&utm_source=habrahabr&utm_medium=rss
Tags: Python, C++, pip, virtualenv, c++, cuda
Хабр
Открытый вебинар «The Python Packaging»
23 сентября в 16:30 в рамках цикла открытых технических семинаров компании Xperience AI с докладом выступит Григорий Серебряков (CTO, Xperience AI). Тема доклада - The Python packaging. "The Python...
Forwarded from HABR FEED + OPENNET
#news Открытый вебинар «Асинхронное программирование на Python для начинающих»
https://habr.com/ru/news/t/579268/?utm_campaign=579268&utm_source=habrahabr&utm_medium=rss
Tags: Блог компании KTS, Python, Учебный процесс в IT, асинхронное программирование, backend, frontend, devops
https://habr.com/ru/news/t/579268/?utm_campaign=579268&utm_source=habrahabr&utm_medium=rss
Tags: Блог компании KTS, Python, Учебный процесс в IT, асинхронное программирование, backend, frontend, devops
Хабр
Открытый вебинар «Асинхронное программирование на Python для начинающих»
Привет! Дважды в год мы в Metaclass KTS проводим бесплатные школы, по итогам которых набираем себе стажеров. Часто на курсе по бэкенду мы сталкиваемся с отсутствием знаний у студентов на тему...
Forwarded from Базы данных & SQL
Как подружить Python и базы данных SQL.
Подробное руководство.
#python #postgresql #sqlite #mysql
Автор данной статьи рассказывает как связать Python и такие СУБД как: SQLite, MySQL и PostgreSQL.
Читать
Подробное руководство.
#python #postgresql #sqlite #mysql
Автор данной статьи рассказывает как связать Python и такие СУБД как: SQLite, MySQL и PostgreSQL.
Читать
Forwarded from Инжиниринг Данных (Dmitry Anoshin)
Заключительное видео по модулю 5 - Python в Облаке AWS на базе AWS Python Workshop. Так же Сергей перевел весь воркшоп на русский, я сам его прошел и остался очень довольный, все как мы любим - от простого к сложному.
Python является самым популярным языком программирования и используются абсолютно для любых задач. В будующих модулях 07. Spark, 08. Big Data и 09. Data Lake мы начнем использовать Python для аналитики, трансформации и инжиниринга данных, поэтому мы решили вв конце модуля про облычные вычисления провести Workshop по Python на AWS. Воркшоп доступен на английском и русском языках. Из него вы на парктики узнаете основы работы с Python:
📌 Переменные
📌 Типы данных
📌 Пакеты
📌 Функции
📌 Аргументы и параметры
📌 Циклы и Условия
📌 Логирование и Ошибки
📌 Python библиотека boto3 для работы с AWS
📌 Cloud9 - AWS IDE
Модуль 5 оффициально окончен. Все материалы по нему - в git, включая сертификат для linkedin и значок открытка для социальных сетей.
Далее я начну модуль 6, а Рома портирует модуль про облачные вычисления как отдельный самостоятельный курс на степик. Мы явно опережаем время с облаками, но это был важный элемент в современной аналитике.
Python является самым популярным языком программирования и используются абсолютно для любых задач. В будующих модулях 07. Spark, 08. Big Data и 09. Data Lake мы начнем использовать Python для аналитики, трансформации и инжиниринга данных, поэтому мы решили вв конце модуля про облычные вычисления провести Workshop по Python на AWS. Воркшоп доступен на английском и русском языках. Из него вы на парктики узнаете основы работы с Python:
📌 Переменные
📌 Типы данных
📌 Пакеты
📌 Функции
📌 Аргументы и параметры
📌 Циклы и Условия
📌 Логирование и Ошибки
📌 Python библиотека boto3 для работы с AWS
📌 Cloud9 - AWS IDE
Модуль 5 оффициально окончен. Все материалы по нему - в git, включая сертификат для linkedin и значок открытка для социальных сетей.
Далее я начну модуль 6, а Рома портирует модуль про облачные вычисления как отдельный самостоятельный курс на степик. Мы явно опережаем время с облаками, но это был важный элемент в современной аналитике.
YouTube
DATALEARN | DE - 101 | МОДУЛЬ 5-10 PYTHON В ОБЛАКЕ
Python является самым популярным языком программирования и используются абсолютно для любых задач. В будующих модулях 07. Spark, 08. Big Data и 09. Data Lake мы начнем использовать Python для аналитики, трансформации и инжиниринга данных, поэтому мы решили…
Forwarded from Python Academy
Вызов программ операционной системы
sh — это полноценный интерфейс, как альтернатива
Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция
#sh
sh — это полноценный интерфейс, как альтернатива
subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция. Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция
which, которая находит полный путь до программы либо возвращает None, если программа не найдена.#sh
Forwarded from Python Academy
Находим схожие строки
В стандартной библиотеке Python существует модуль
Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
#difflib
В стандартной библиотеке Python существует модуль
difflib, в котором есть интересный метод get_close_matches. Он позволяет найти в списке строки, похожие на некую исходную.Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
n, который задаёт максимальное число возвращаемых совпадений.#difflib
Forwarded from Python Academy
Гайд по Python для новичков
Если впервые на канале — полезно знать, что в Python Academy уже куча статей на разные темы. Вот лучшее из того, о чем я успел рассказать:
— Вирус локер на Python и Tkinter
— 7 фишек, максимально улучшающие твой код
— Работа с процессами в Python
— 99% точность в классификации цифр на Keras
— Pandas для начинающих
— Градиентный спуск: просто о сложном
#начинающим
Если впервые на канале — полезно знать, что в Python Academy уже куча статей на разные темы. Вот лучшее из того, о чем я успел рассказать:
— Вирус локер на Python и Tkinter
— 7 фишек, максимально улучшающие твой код
— Работа с процессами в Python
— 99% точность в классификации цифр на Keras
— Pandas для начинающих
— Градиентный спуск: просто о сложном
#начинающим