Forwarded from # pip install (Student B.)
Оператор match, который появится в Python 3.10, выглядит очень интересно. С подробным описанием и руководством можете ознакомиться здесь: https://www.python.org/dev/peps/pep-0636/
По сути он напоминает оператор switch в C, но более мощный.
*
Однако, важно отметить, что его синтаксис может значительно отличаться от switch. Конструкции case не просто проверяют равенство, оно повторно связывают переменные, которые соответствуют определенному шаблону.
*
Предполагаю, внедрение нового синтаксиса может сильно запутать пользователей...
*
Я не уверен, можно ли использовать match со значением переменной, которая его представляет, а не с соответствующим шаблоном. Данный вопрос был задан на StackOverflow, можете ознакомиться, если интересно: https://stackoverflow.com/questions/66159432/python-match-statement-how-to-use-values-stored-in-variables
По сути он напоминает оператор switch в C, но более мощный.
*
Однако, важно отметить, что его синтаксис может значительно отличаться от switch. Конструкции case не просто проверяют равенство, оно повторно связывают переменные, которые соответствуют определенному шаблону.
*
Предполагаю, внедрение нового синтаксиса может сильно запутать пользователей...
*
Я не уверен, можно ли использовать match со значением переменной, которая его представляет, а не с соответствующим шаблоном. Данный вопрос был задан на StackOverflow, можете ознакомиться, если интересно: https://stackoverflow.com/questions/66159432/python-match-statement-how-to-use-values-stored-in-variables
Forwarded from # pip install (Student B.)
Python 3.9.2rc1 и 3.8.8rc1 теперь доступны для тестирования
С радостью сообщаем о двух новых релизов – Python 3.9.2rc1 и Python 3.8.8rc1.
Можете скачать их прямо сейчас:
https://www.python.org/downloads/release/python-392rc1/
https://www.python.org/downloads/release/python-388rc1/
Если критические проблемы не будут обнаружены, оба релиза станут финальными версиями в понедельник, 1 марта.
Следующий выпуск полного регулярного обслуживания Python 3.8 запланирован на 3 мая 2021 года. После этого он переключится только на исходные версии для исправления ошибок безопасности. Техническая поддержка для серии 3.9 будет продолжаться с регулярными интервалами два раза в месяц. При этом релиз версии 3.9.3 запланирован на начало мая 2021 года.
С радостью сообщаем о двух новых релизов – Python 3.9.2rc1 и Python 3.8.8rc1.
Можете скачать их прямо сейчас:
https://www.python.org/downloads/release/python-392rc1/
https://www.python.org/downloads/release/python-388rc1/
Если критические проблемы не будут обнаружены, оба релиза станут финальными версиями в понедельник, 1 марта.
Следующий выпуск полного регулярного обслуживания Python 3.8 запланирован на 3 мая 2021 года. После этого он переключится только на исходные версии для исправления ошибок безопасности. Техническая поддержка для серии 3.9 будет продолжаться с регулярными интервалами два раза в месяц. При этом релиз версии 3.9.3 запланирован на начало мая 2021 года.
Forwarded from # pip install (Student B.)
Изменения в безопасности текущих релизов:
• bpo-42967: Исправление уязвимости, связанной с отравлением веб-кеша через назначение символа & в качестве разделителя аргументов запроса и предоставления пользователю возможности выбора собственного разделителя;
• bpo-42938: Избежание статических буферов при вычислении значений ctypes.c_double и ctypes.c_longdouble.
Что нового?
- Серия Python 3.9.* содержит много новых функций и оптимизаций по сравнению с 3.8. Просмотрите документ "Что нового в Python 3.9" (https://docs.python.org/3.9/whatsnew/3.9.html) для получения дополнительной информации о функциях, включенных в серию 3.9. У нас также есть подробный лог изменений специально для 3.9.2rc1 (https://docs.python.org/release/3.9.2rc1/whatsnew/changelog.html#changelog).
- Подробную информацию обо всех изменениях, внесенных в версию 3.8.8rc1, можно найти в логе изменений (https://docs.python.org/release/3.8.8rc1/whatsnew/changelog.html#python-3-8-8-release-candidate-1).
• bpo-42967: Исправление уязвимости, связанной с отравлением веб-кеша через назначение символа & в качестве разделителя аргументов запроса и предоставления пользователю возможности выбора собственного разделителя;
• bpo-42938: Избежание статических буферов при вычислении значений ctypes.c_double и ctypes.c_longdouble.
Что нового?
- Серия Python 3.9.* содержит много новых функций и оптимизаций по сравнению с 3.8. Просмотрите документ "Что нового в Python 3.9" (https://docs.python.org/3.9/whatsnew/3.9.html) для получения дополнительной информации о функциях, включенных в серию 3.9. У нас также есть подробный лог изменений специально для 3.9.2rc1 (https://docs.python.org/release/3.9.2rc1/whatsnew/changelog.html#changelog).
- Подробную информацию обо всех изменениях, внесенных в версию 3.8.8rc1, можно найти в логе изменений (https://docs.python.org/release/3.8.8rc1/whatsnew/changelog.html#python-3-8-8-release-candidate-1).
Forwarded from # pip install
🔥 Алгебраические типы данных и Python
Возможно, кто-то из читателей, увидев заголовок этой статьи, подумает что-нибудь вроде:
"Что?! Алгебраические типы данных?! Это же что-то из мира функциональных языков программирования. Python?! Ну нет... Где Python со своей динамической утиной типизацией, а где типы данных, и уж тем более алгебраические..."
Что-то в таком духе. Но, на самом деле, в Python есть своя система типов, кроме того Python считается языком со строгой типизацией, а благодаря mypy и аннотациям, корректность используемых типов может быть проверена статически без непосредственного запуска программы.
🎯 Telegram Чат: @python_scripts
Подробнее: https://habr.com/ru/post/566920/
Возможно, кто-то из читателей, увидев заголовок этой статьи, подумает что-нибудь вроде:
"Что?! Алгебраические типы данных?! Это же что-то из мира функциональных языков программирования. Python?! Ну нет... Где Python со своей динамической утиной типизацией, а где типы данных, и уж тем более алгебраические..."
Что-то в таком духе. Но, на самом деле, в Python есть своя система типов, кроме того Python считается языком со строгой типизацией, а благодаря mypy и аннотациям, корректность используемых типов может быть проверена статически без непосредственного запуска программы.
🎯 Telegram Чат: @python_scripts
Подробнее: https://habr.com/ru/post/566920/
Forwarded from # pip install
Краткая история о том, как развернуть веб-сервер Flask в docker контейнере
Для чего вообще нужен docker контейнер? Обычно, во время разработки, для каждого проекта вы настраиваете своё окружение. Но вот произошла такая ситуация: что-то случилось с вашим компьютером и приходится переустанавливать операционную систему(ОС). Соответственно, чтобы запустить ваш проект, необходимо настраивать окружение заново.
Бывает ещё гигантское количество ситуаций, которые сводятся к одной проблеме - настройка окружения для разработки. Так вот Docker - коробка, которую достаточно единожды настроить под проект, чтобы в дальнейшем не было проблем с эксплуатацией/расширением сервиса
🎯 Telegram Чат: @python_scripts
Подробнее: https://habr.com/ru/company/megafon/blog/541826/
Для чего вообще нужен docker контейнер? Обычно, во время разработки, для каждого проекта вы настраиваете своё окружение. Но вот произошла такая ситуация: что-то случилось с вашим компьютером и приходится переустанавливать операционную систему(ОС). Соответственно, чтобы запустить ваш проект, необходимо настраивать окружение заново.
Бывает ещё гигантское количество ситуаций, которые сводятся к одной проблеме - настройка окружения для разработки. Так вот Docker - коробка, которую достаточно единожды настроить под проект, чтобы в дальнейшем не было проблем с эксплуатацией/расширением сервиса
🎯 Telegram Чат: @python_scripts
Подробнее: https://habr.com/ru/company/megafon/blog/541826/
Forwarded from Big data world
🖥 Pip vs Conda: подробное сравнение двух систем упаковки Python Если вы используете Python в мире науки о данных или научных вычислений, вы скоро обнаружите, что Python имеет две разные системы упаковки: pip и Conda. ✔️Насколько они разные?
✔️Каковы компромиссы между ними?
✔️Что вам следует использовать? https://cutt.ly/qRfDwzJ
✔️Каковы компромиссы между ними?
✔️Что вам следует использовать? https://cutt.ly/qRfDwzJ
Python⇒Speed
Pip vs Conda: an in-depth comparison of Python’s two packaging systems
Python has two packaging systems, pip and Conda. Learn the differences between them so you can pick the right one for you.
Forwarded from Data Science | Machinelearning [ru]
Начнем работу с Mock в Python
В этой статье рассматриваются основы mock в Python для того чтобы вы знали, как использовать встроенные возможности Python для замены частей тестируемой системы, чтобы писать более быстрые тесты.
Читать...
В этой статье рассматриваются основы mock в Python для того чтобы вы знали, как использовать встроенные возможности Python для замены частей тестируемой системы, чтобы писать более быстрые тесты.
Читать...
Forwarded from Python Academy
Книги по Python - самый большой канал с книгами по Python в телеграм.
Что в нашем канале:
1. Книги по питону, которые помогут вам пройти собеседование на позицию Python Developer.
2. Задачи по питону, которые вы можете получить на собеседовании: @pythonquestions
3. Всё, никакой другой воды.
Скачать все книги можно в 2 клика.
Что в нашем канале:
1. Книги по питону, которые помогут вам пройти собеседование на позицию Python Developer.
2. Задачи по питону, которые вы можете получить на собеседовании: @pythonquestions
3. Всё, никакой другой воды.
Скачать все книги можно в 2 клика.
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
Условие:
Ваша задача — написать функцию, которая возвращает строку без комментариев.
Примеры находятся в файле выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая возвращает строку без комментариев.
Примеры находятся в файле выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования