Forwarded from Яндекс Образование
Вместе с автором курса «Python-разработчик» в Яндекс.Практикуме мы собрали список самых необходимых программ и инструментов начинающего разработчика: от редакторов кода и систем контроля версий до ресурсов с ответами на частые вопросы 👉🏻
https://clck.ru/YPPnW
https://clck.ru/YPPnW
Forwarded from Python Academy
Пишем обратно совместимый код
С помощью пакета
Для этого в пакете есть все типы, функции и некоторые модули стандартной библиотеки, которые под капотом работают по-разному в зависимости от версии языка.
Например, в пакете поддерживаются
Штука прикольная, но я не уверен, где это на практике можно использовать, так как почти весь код сейчас либо переписывается на Python 3, либо сразу пишется на нем.
#six
С помощью пакета
six
можно писать код, который запустится и на Python 2, и на Python 3. То есть код получается обратно совместимым.Для этого в пакете есть все типы, функции и некоторые модули стандартной библиотеки, которые под капотом работают по-разному в зависимости от версии языка.
Например, в пакете поддерживаются
tkinter
и urllib
. Полная документация проекта находится тут.Штука прикольная, но я не уверен, где это на практике можно использовать, так как почти весь код сейчас либо переписывается на Python 3, либо сразу пишется на нем.
#six
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()
.#теория #итераторы