Forwarded from Python Academy
Проверка отношения классов
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
isinstance(object, classinfo)
и issubclass(class, classinfo)
.instance
- возвращает True, если объект является экземпляром класса либо экземпляром подкласса данного класса.issubclass
— проверяет является ли класс наследником другого класса.Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Forwarded from Python Academy
Набор на стажировку по бэкенд-разработке в Яндекс (C++, Python, Go) ⚡️⚡️
🔸 От 3 до 6 месяцев оплачиваемой стажировки бок о бок с ментором, возможность получить практический опыт и применить свои знания в работе над реальными продуктами Яндекса.
🔸 Преимущество стажировки в течение года — её удобно совмещать с учёбой. Вы сможете выбрать занятость 20, 30 или 40 часов в неделю и договориться с командой о комфортном для себя графике.
🔸 Где проходит стажировка: Москва, Санкт-Петербург, Екатеринбург, Новосибирск
🔸 Как проходит отбор: тестовое задание на платформе Яндекс.Контест, 2-3 технических интервью и финальные встречи с командами.
🔸 Решить задачи прошлых лет и оценить свой уровень знаний можно здесь. Результаты ни на что не влияют.
👉 Подать заявку и узнать больше: https://clck.ru/YLsKi
🔸 От 3 до 6 месяцев оплачиваемой стажировки бок о бок с ментором, возможность получить практический опыт и применить свои знания в работе над реальными продуктами Яндекса.
🔸 Преимущество стажировки в течение года — её удобно совмещать с учёбой. Вы сможете выбрать занятость 20, 30 или 40 часов в неделю и договориться с командой о комфортном для себя графике.
🔸 Где проходит стажировка: Москва, Санкт-Петербург, Екатеринбург, Новосибирск
🔸 Как проходит отбор: тестовое задание на платформе Яндекс.Контест, 2-3 технических интервью и финальные встречи с командами.
🔸 Решить задачи прошлых лет и оценить свой уровень знаний можно здесь. Результаты ни на что не влияют.
👉 Подать заявку и узнать больше: https://clck.ru/YLsKi
Forwarded from Python Academy
Делаем планировщик задач
К моему удивлению, далеко не все знают про пакет
Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще
Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
#schedule
К моему удивлению, далеко не все знают про пакет
schedule
, который позволяет планировать задачи и повторять их через промежуток времени. Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще
schedule
не требует внешних зависимостей и сам в целом легковесный. Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
#schedule
Forwarded from Python Community
⚡️ Генераторные списки
Генераторные списки — синтаксическая конструкция, позволяющая превращать циклические конструкции в одну строку.
Выглядит она так:
Такое можно проделывать не только со списками, а и с кортежами, множествами, просто заменив квадратные скобки на круглые или фигурные (в зависимости от типа).
Если же скобки убрать, то мы получим обычный генератор, который можно использовать так, как захочется (например с функцией sum).
#теория
Генераторные списки — синтаксическая конструкция, позволяющая превращать циклические конструкции в одну строку.
Выглядит она так:
[expression for member in iterable]
, где expression — значение, которое будет записано в список, member — переменная, в которую записывается результат прохода по циклу и iterable — итерируемый объект, с которым работает конструкция.Такое можно проделывать не только со списками, а и с кортежами, множествами, просто заменив квадратные скобки на круглые или фигурные (в зависимости от типа).
Если же скобки убрать, то мы получим обычный генератор, который можно использовать так, как захочется (например с функцией sum).
#теория
Forwarded from Python Community
⚡️ Ускоряем выполнения кода
Для этого нам может пригодится Cython, модуль переводящий код из языка Python в C с минимальным количеством изменений.
Установка:
После — компилируем код с помощью скрипта из второго файла и запускаем его командой
В результате мы получим файл с си кодом. Мы можете открыть интерпретатор python и импортировать функцию test командой
Для этого нам может пригодится Cython, модуль переводящий код из языка Python в C с минимальным количеством изменений.
Установка:
pip install cython
Основное различие между кодом python и cython в том, что cpdef, cdef, def передают название переменных/функций. cpdef используется при создании кода, доступного и из python и из cython, когда cdef доступен только для второго.После — компилируем код с помощью скрипта из второго файла и запускаем его командой
python3 setup.py build_ext --inplace
.В результате мы получим файл с си кодом. Мы можете открыть интерпретатор python и импортировать функцию test командой
from cython_ex import test
#миниурок #cythonForwarded from Python Community
⚡️ Оператор моржа
Данный оператор доступен с версии Python 3.8. Он позволяет записывать данные в переменную и выполнять определённое действие.
С ним можно избежать повторного использования одной и той же функции.
Записывается оператор моржа так
Применения у него множество, например, в генераторных списках, циклах, при вызове функции и других выражениях.
#теория
Данный оператор доступен с версии Python 3.8. Он позволяет записывать данные в переменную и выполнять определённое действие.
С ним можно избежать повторного использования одной и той же функции.
Записывается оператор моржа так
var_name :=
value
, где :=
это и есть оператор. Подробнее о нём можете почитать в PEP 572.Применения у него множество, например, в генераторных списках, циклах, при вызове функции и других выражениях.
#теория
Forwarded from Python Community
⚡️ Выполняем команды прямо в терминале
sh — интересный модуль с открытым исходным кодом, позволяющий запускать команды из системы Python. Он намного проще, чем subprocess.
Установка:
Вы также можете перенаправлять вывод, «запечатывать» команды и создавать подкоманды — в этом и заключается преимущество модуля.
#миниурок #sh
sh — интересный модуль с открытым исходным кодом, позволяющий запускать команды из системы Python. Он намного проще, чем subprocess.
Установка:
pip install sh
Данная библиотека выполняет команду, записанную как функцию, в скобочках получает аргументы этой команды, а после выполнения — возвращает результат работы или записывает его в _out.Вы также можете перенаправлять вывод, «запечатывать» команды и создавать подкоманды — в этом и заключается преимущество модуля.
#миниурок #sh
Forwarded from Python Community
⚡️ Обрабатываем аргументы командной строки
argparse — встроенный модуль, позволяющий обработать данные, переданные при запуске скрипта из терминала.
На самом деле, argparse, является обёрткой над
А если вам нужно больше возможностей, то просто создайте класс ArgumentParser, который сгенерирует базовые команды (-h, --help), описание и название программы.
После этого вы сможете добавить свои аргументы, используя метод
#миниурок #argparse
argparse — встроенный модуль, позволяющий обработать данные, переданные при запуске скрипта из терминала.
На самом деле, argparse, является обёрткой над
sys.argv
и, если у вас простенький скрипт, который принимает 1-2 аргумента, то я советую получать аргументы напрямую из sys.А если вам нужно больше возможностей, то просто создайте класс ArgumentParser, который сгенерирует базовые команды (-h, --help), описание и название программы.
После этого вы сможете добавить свои аргументы, используя метод
add_argument
. Чтобы получить все данные, воспользуйтесь методом parse_args
, который возвращает список из параметров.#миниурок #argparse
Forwarded from Python Community
⚡️ Системный модуль в Python
sys — предустановленный модуль, обеспечивающий доступ к функция и переменным интерпретатора Python.
Данный модуль имеет огромное количество функций и переменных, подробнее о них можете почитать на сайте документации. Здесь же будут самые интересные из них:
sys — предустановленный модуль, обеспечивающий доступ к функция и переменным интерпретатора Python.
Данный модуль имеет огромное количество функций и переменных, подробнее о них можете почитать на сайте документации. Здесь же будут самые интересные из них:
sys.platform
— позволяет узнать платформу, на которой запущен Python и, на её основе выполнить определённый код. Также, она возвращает строку. Все значения тут.sys.stdin
— файловая переменная, позволяющая получить данным к входным данным из терминала.sys.stdout
, sys.stderr
— файловые переменные позволяющие выводить в терминал сообщения/ошибки.sys.version_info
— позволяет узнать версию языка, на котором запускается скрипт. Возвращает кортеж. Если же вам нужна строка, воспользуйтесь sys.version
#миниурок #sysForwarded from Python Community
⚡️ Разница между
#теория #str
__str__
и __repr__
Довольно часто при создании собственного класса, необходимо выводить данные о нём в виде строки. Документация говорит использовать __str__
и __repr__
, но в чём же между ними разница?__str__()
— метод, который превращает объект в более читаемый вид, понятный для пользователя программы. Если же он не определён, то вызывает __repr__
__repr__()
— метод, используемый программистами. Это — строка, позволяющая создать новый объект с такими же данными, используя функцию eval
.#теория #str
Forwarded from Python Community
remove_comments.py
264 B
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать функцию, которая возвращает строку без комментариев.
Примеры находятся в файле выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая возвращает строку без комментариев.
Примеры находятся в файле выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Forwarded from Python Community
⚡️ Сохраняем Python-объект в файле
Сделать такое позволяет pickle — предустановленный модуль, реализующий алгоритм преобразования объекта в поток байтов или наоборот.
Для работы с ним вам достаточно двух функций:
Внимание! Этот модуль считается небезопасным. Не загружайте файлы из сомнительных источников.
Сделать такое позволяет pickle — предустановленный модуль, реализующий алгоритм преобразования объекта в поток байтов или наоборот.
Для работы с ним вам достаточно двух функций:
pickle.dump(obj, file)
— записывает сериализованный объект в файл.pickle.load(file)
— загружает объект из файла и возвращает его.Внимание! Этот модуль считается небезопасным. Не загружайте файлы из сомнительных источников.
Forwarded from Python Community
⚡️ Собираем данные о системе
psutil — утилита, позволяющая получить данные о системе и о её состоянии: от количества ядер процессора, до текущей нагрузки на сеть.
Установка:
Например, есть функция
Подробнее о таких особенностях можно почитать на сайте документации, а определить используемую систему можно с помощью констант, которые написаны тут.
#миниурок #psutil
psutil — утилита, позволяющая получить данные о системе и о её состоянии: от количества ядер процессора, до текущей нагрузки на сеть.
Установка:
pip install psutil
Данный модуль стабильно работает на большинстве операционных систем, но функционал у них всё таки отличается.Например, есть функция
psutil.Process.rlimit
, работающая только в ОС Linux и FreeBSD, но не работающая в Windows.Подробнее о таких особенностях можно почитать на сайте документации, а определить используемую систему можно с помощью констант, которые написаны тут.
#миниурок #psutil
Forwarded from Python Community
⚡️ Переопределяем операторы
В Python почти каждый оператор — метод класса. Например, + — это
Зная это мы можем переопределить оператор, просто унаследовав класс, чьё поведение мы хотим изменить и записать туда необходимую функцию.
Подробнее об используемых метода можно найти на странице документации оператора, как с with, или в документации модуля operators, которые предоставляются в виде функций.
#теория #operators
В Python почти каждый оператор — метод класса. Например, + — это
__add__
, сравнение (==) — это __eq__
, а with — __enter__
, __exit__
.Зная это мы можем переопределить оператор, просто унаследовав класс, чьё поведение мы хотим изменить и записать туда необходимую функцию.
Подробнее об используемых метода можно найти на странице документации оператора, как с with, или в документации модуля operators, которые предоставляются в виде функций.
#теория #operators
Forwarded from Python Community
⚡️ Модуль collections, класс Counter
collections — модуль, предоставляющий специализированные типы данных. Он хранит в себе различные классы, такие как namedtuple, counter, deque и множество других. Об одном из них мы и поговорим.
Counter — словарь, позволяющий узнать какое количество раз повторяются элементы в итерируемом объекте (list, string).
Получить данные можно с помощью квадратных скобочек. Если же элемент не найден, он возвращает 0.
#миниурок #Counter
collections — модуль, предоставляющий специализированные типы данных. Он хранит в себе различные классы, такие как namedtuple, counter, deque и множество других. Об одном из них мы и поговорим.
Counter — словарь, позволяющий узнать какое количество раз повторяются элементы в итерируемом объекте (list, string).
Получить данные можно с помощью квадратных скобочек. Если же элемент не найден, он возвращает 0.
most_common(n)
— возвращает n
самых повторяемых объектов.elements()
— возвращает итератор для всех элементов.#миниурок #Counter
Forwarded from Python Community
⚡️ Модуль collections. Класс OrderedDict
Мы уже рассказывали про модуль collections, а если конкретнее — класс Counter. В этот раз разберём OrderedDict.
OrderedDict — словарь, особенный тем, что все ключи находятся в том же порядке, в котором и добавлялись.
Подробнее о данном классе можете почитать тут.
#миниурок #collections
Мы уже рассказывали про модуль collections, а если конкретнее — класс Counter. В этот раз разберём OrderedDict.
OrderedDict — словарь, особенный тем, что все ключи находятся в том же порядке, в котором и добавлялись.
popitem()
— Возвращает и удаляет последний элемент из упорядоченного списка. move_to_end(key)
— перемещает ключ в конец. Если передан параметр last, перемещает ключ в начало.Подробнее о данном классе можете почитать тут.
#миниурок #collections
Forwarded from Python Community
⚡️ Оператор yield
yield — оператор, позволяющий создавать генераторы. Благодаря нему функция может вернуть сразу несколько значений.
Записывается он вместо return, принимая число, которое должна вернуть функция.
Если же обычный метод возвращает какое-то значение, то генератор возвращает себя, благодаря чему мы можем пройтись по нему используя циклы или функцию
#теория #итераторы
yield — оператор, позволяющий создавать генераторы. Благодаря нему функция может вернуть сразу несколько значений.
Записывается он вместо return, принимая число, которое должна вернуть функция.
Если же обычный метод возвращает какое-то значение, то генератор возвращает себя, благодаря чему мы можем пройтись по нему используя циклы или функцию
next()
.#теория #итераторы
Forwarded from Python Community
⚡️ Модуль collections. Класс deque
Раннее мы писали про Counter и OrderedDict, настало время поговорить про deque.
deque — класс, предоставляющий двойную очередь (то есть элементы можно брать и с начала и с конца). Его основное преимущество над списком — скорость при изменении размера. Добавление и удаление элементов имеет O(1), а у списка — O(n).
#миниурок #collections
Раннее мы писали про Counter и OrderedDict, настало время поговорить про deque.
deque — класс, предоставляющий двойную очередь (то есть элементы можно брать и с начала и с конца). Его основное преимущество над списком — скорость при изменении размера. Добавление и удаление элементов имеет O(1), а у списка — O(n).
append(x)
, appendleft(x)
— добавляет элемент в конец/начало.pop()
, popleft()
— возвращает и удаляет элемента с конца/начала очереди.rotate(n=1)
— перемещает n объектов с конца в начало очереди#миниурок #collections