#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Python Academy
Именованные кортежи

Кстати, namedtuple из collections можно также использовать для хранения данных, как и классы данных, про которые я писал в предыдущем посте.

Из названия понятно, что в основе этой структуры лежит привычный всем кортеж. Если кто не помнит, то это как список, но неизменяемый.

Функция namedtuple создает новые классы-заготовки, на основе которых уже можно создавать объекты для дальнейшего хранения данных.

В аргументы мы передаем название нового класса и список атрибутов.

Здесь еще удобно то, что мастхэв функционал типа вывода на экран и сравнения похожих объектов также уже реализован.

#namedtuple
Forwarded from Python Academy
Классы данных

Еще в Python 3.7 добавили такую мощную штуку, как классы данных. Они призваны автоматизировать генерацию кода классов, которые используются для хранения данных.

Встроенный модуль dataclasses содержит декоратор @dataclass. С его использованием код будет выглядеть лаконично и коротко. Пример на картинке выше.

Важно отметить, что аннотации типов обязательны. Все поля, которые не имеют отметок о типе будут проигнорированы. Конечно, если вы не хотите использовать конкретный тип, вы можете указать Any из модуля typing.

В результате вы автоматически получаете класс, с реализованными методами __init____repr____str__ и __eq__. Кроме того, это будет обычный класс и вы можете наследоваться от него или добавлять произвольные методы.

#dataclass
Forwarded from HABR FEED + OPENNET
Порараз бирацца: как мы учились писать автотесты на Python и что у нас получилось
https://habr.com/ru/post/582990/?utm_source=habrahabr&utm_medium=rss&utm_campaign=582990
Tags: Блог компании Магнит, Разработка веб-сайтов, Тестирование IT-систем, Тестирование веб-сервисов, pytest, selenium-webdriver, python, ci cd, devops
Author aleksandra_zay #habr
Forwarded from Python School
Метод get() у словарей и его «дефолтный» результат.

Немножко теории: метод get() возвращает значение для искомого ключа. Если ключ недоступен, возвращает значение по умолчанию.

Метод get() возвращает значение по ключу если такой ключ присутсвует в списке, если его нет, то метод возвращает дефолтное значение.

Если же мы напишем nameforuserid.get(5454) без указания «дефолтного» значения, то функция вернет None. Довольно удобно и практично.
Forwarded from Python Academy
Генерируем анекдоты

Не самый полезный, но весьма интересный пакет pyjokes выдает различные шутки и анекдоты на 6 языках. Но русский, к сожалению, в это число не входит.

Метод get_joke() возвращает строку, которая хранит в себе случайную шутку. В аргументы можно указать язык, по умолчанию стоит английский.

Также можно указать категорию в аргументах — особенно классно заходят штуки про Чак Норриса с пометкой 'chuck'.

#pyjokes
Forwarded from Python Academy
Аннотация типов

Тайп хинтинг был добавлен в 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
Импорт антигравитации

Достаточно старая, но все же интересная пасхалка: если в коде прописать import __antigravity__, то при запуске скрипта откроется страница в браузере, которая содержит шутку про то, насколько же всё-таки язык простой.

#пасхалки
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.
Forwarded from Python Academy
Аннотация типов

Тайп хинтинг был добавлен в 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 архивами 

Для работы с zip файлами можно использовать встроенный модуль zipfile. Если кто не помнит, то zip файл — это архив, содержащий сжатые файлы. 

Просмотреть содержимое архива можно с помощью функции printdir, а извлечь все файлы можно вызвав extractfile

Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. 

#zipfile
#вопрос147

Чем отличается кортеж от списка в Python?
​​💻 Практика программирования на 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]

Перейти к плейлисту

#видео
​​Начнем работу с Mock в Python

В этой статье рассматриваются основы mock в Python для того чтобы вы знали, как использовать встроенные возможности Python для замены частей тестируемой системы, чтобы писать более быстрые тесты.

Читать...
Forwarded from Python School
pprint

Стандартная функция 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
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 года.