Forwarded from Python Academy
Аннотация типов
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой
В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур
И наконец в 3.10 на замену перечисления возможных принимаемых типов через
#typing #typealias
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой
typing
, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур
typing
'а (List
, Dict
, Tuple
...).И наконец в 3.10 на замену перечисления возможных принимаемых типов через
typing.Union
пришел опреатор |
(or
). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias
.#typing #typealias
Forwarded from Python Academy
Forwarded from DataWorkshop - AI & ML
4 октября 2021 вышел релиз Python - 3.10.
Приведем самые интересные обновления из последней версии:
1️⃣Улучшенные сообщения об ошибках
Более точные сообщения об ошибках для многих распространенных проблем.
2️⃣Предложены новые встроенные функции aiter() и anext() с реализацией асинхронных аналогов функциям iter() и next().
3️⃣Реализованы операторы "match" и "case" для сопоставления с образцом, которые позволяют улучшить читаемость кода, упростить сопоставление произвольных Python-объектов и повысить надёжность кода.
4️⃣Предоставлена возможность использования круглых скобок в операторе with для разнесения на несколько строк определения коллекции контекстных менеджеров.
5️⃣Для отладочных инструментов и профилировщиков обеспечено указание в событиях трассировки точных номеров строк выполненного кода.
6️⃣ В модулях hashlib и ssl добавлена поддержка OpenSSL 3.0.0 и прекращена поддержка версий OpenSSL меньше 1.1.1.
7️⃣ Объявлен устаревшим модуль distutils, который запланирован для удаления в Python 3.12.
Приведем самые интересные обновления из последней версии:
1️⃣Улучшенные сообщения об ошибках
Более точные сообщения об ошибках для многих распространенных проблем.
2️⃣Предложены новые встроенные функции aiter() и anext() с реализацией асинхронных аналогов функциям iter() и next().
3️⃣Реализованы операторы "match" и "case" для сопоставления с образцом, которые позволяют улучшить читаемость кода, упростить сопоставление произвольных Python-объектов и повысить надёжность кода.
4️⃣Предоставлена возможность использования круглых скобок в операторе with для разнесения на несколько строк определения коллекции контекстных менеджеров.
5️⃣Для отладочных инструментов и профилировщиков обеспечено указание в событиях трассировки точных номеров строк выполненного кода.
6️⃣ В модулях hashlib и ssl добавлена поддержка OpenSSL 3.0.0 и прекращена поддержка версий OpenSSL меньше 1.1.1.
7️⃣ Объявлен устаревшим модуль distutils, который запланирован для удаления в Python 3.12.
Forwarded from Python Academy
Аннотация типов
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой
В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур
И наконец в 3.10 на замену перечисления возможных принимаемых типов через
#typing #typealias
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой
typing
, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур
typing
'а (List
, Dict
, Tuple
...).И наконец в 3.10 на замену перечисления возможных принимаемых типов через
typing.Union
пришел опреатор |
(or
). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias
.#typing #typealias
Forwarded from Python Academy
Операции с zip архивами
Для работы с
Просмотреть содержимое архива можно с помощью функции
Также этот модуль позволяет создавать свои
#zipfile
Для работы с
zip
файлами можно использовать встроенный модуль zipfile
. Если кто не помнит, то zip
файл — это архив, содержащий сжатые файлы. Просмотреть содержимое архива можно с помощью функции
printdir
, а извлечь все файлы можно вызвав extractfile
. Также этот модуль позволяет создавать свои
zip
архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. #zipfile
Forwarded from Python вопросы на собеседовании с ответами
Forwarded from Python вопросы на собеседовании с ответами
Forwarded from [404] — программирование
💻 Практика программирования на Python 3
Невероятно полезные лекции от Тимофея Хирьянова – преподавателя кафедры информатики МФТИ, который также работает в онлайн-школе Foxford.
1. Лекция №1 — [1:21:58]
2. Лекция №2 — [1:15:52]
3. Лекция №3 —[1:17:38]
4. Лекция №4 — [1:14:31]
5. Лекция №5 — [1:16:49]
6. Лекция №6 — [1:10:56]
7. Лекция №7 — [1:07:17]
8. Лекция №8 — [1:20:17]
9. Лекция №9 — [1:22:10]
10. Лекция №10 — [1:17:44]
11. Лекция №11 — [1:15:27]
12. Лекция №12 — [1:22:16]
13. Лекция №13 — [1:16:45]
14. Лекция №14 — [52:20]
Перейти к плейлисту
#видео
Невероятно полезные лекции от Тимофея Хирьянова – преподавателя кафедры информатики МФТИ, который также работает в онлайн-школе Foxford.
1. Лекция №1 — [1:21:58]
2. Лекция №2 — [1:15:52]
3. Лекция №3 —[1:17:38]
4. Лекция №4 — [1:14:31]
5. Лекция №5 — [1:16:49]
6. Лекция №6 — [1:10:56]
7. Лекция №7 — [1:07:17]
8. Лекция №8 — [1:20:17]
9. Лекция №9 — [1:22:10]
10. Лекция №10 — [1:17:44]
11. Лекция №11 — [1:15:27]
12. Лекция №12 — [1:22:16]
13. Лекция №13 — [1:16:45]
14. Лекция №14 — [52:20]
Перейти к плейлисту
#видео
Forwarded from Data Science | Machinelearning [ru]
Начнем работу с Mock в Python
В этой статье рассматриваются основы mock в Python для того чтобы вы знали, как использовать встроенные возможности Python для замены частей тестируемой системы, чтобы писать более быстрые тесты.
Читать...
В этой статье рассматриваются основы mock в Python для того чтобы вы знали, как использовать встроенные возможности Python для замены частей тестируемой системы, чтобы писать более быстрые тесты.
Читать...
Forwarded from Python School
pprint
Стандартная функция Python print() делает своё дело. Но если попытаться вывести какой-нибудь большой вложенный объект, результат будет выглядеть не очень приятно.
Здесь на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Мастхэв для любого Python-разработчика, работающего с нестандартными структурами данных
Стандартная функция Python print() делает своё дело. Но если попытаться вывести какой-нибудь большой вложенный объект, результат будет выглядеть не очень приятно.
Здесь на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Мастхэв для любого Python-разработчика, работающего с нестандартными структурами данных
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