Python | Программирование
9.87K subscribers
1.82K photos
2 videos
139 files
1.53K links
Python без границ для всех

Владелец, реклама @Ak_Mihail

Преобрести рекламное размещение: https://telega.in/c/Python_libr
加入频道
📖 Создание настольных Python приложений с графическим интерфейсом пользователя.

• Python является наиболее популярным языком программирования, используемым для объектно-ориентированного программирования. И конечно, Python — это интерактивный язык программирования, который предоставляет широкий спектр возможностей для создания GUI (Graphical User Interface) и разработки настольных приложений. В этой книге вы познакомитесь с различными фреймворками Python для создания настольных приложений с графическим интерфейсом пользователя, такими как PyQt, PySide, Tkinter, Kivy, WxPython и Dear PyGUI.

#RU #Игры
📌 from functools import singledispatch

В Java, C++, C# есть такое понятие как перегрузка метода, это когда код отрабатывает по разному в зависимости от типа аргумента.

В Python нет такой возможности, но мы можем создать подобное поведение с помощью декоратора @singledispatch.

📕 Документация

#урок
📌 Loguru

Выбросьте logging, удалите его из стандартных библиотек и установите loguru. Вы не пожалеете.

Установка: pip install loguru

Можно догадаться, что это модуль для ведения записей, но он намного лучше встроенного решения. С ним в разы проще работать, он легко настраивается и управляется.

Ещё интересной фишкой является отправка сообщений на почту. Установив notifiers, вы сможете пересылать ошибки к себе на email.

📕 Документация

#урок
📌 Roadmap по Python

Это дорожная карта, составленная более опытными разработчиками, чтобы новички знали с чего начать свой путь и куда двигаться дальше.

#roadmap
Фокус с type

Знали ли вы, что с помощью type можно создавать типы? Просто передайте ему на пару аргументов больше и вы получите новый класс!

Так мы можем создать абсолютно новый класс и пользоваться им во время выполнения. Не очень стабильно, но интересно.

📕 Документация

#урок
📌 Устали удалять __pycache__?

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

В ней можно найти .pyc и .pyo файлы. Это байткод и оптимизированный байткод. Они создаются заново, если код программы изменился.

📕 Подробнее

#урок
📌 Дескрипторы

Это невероятно сложная, но класса штука. Проще говоря, это атрибуты-классы с методами __get__(obj, objtype), __set__(obj, value) и/или __delete__(obj).

Когда мы получаем значение атрибута, вызывается __get__(), поведением которого управляем мы. Так мы можем создать, например, константу.

📕 HowTo

#урок
📌 Немного про регулярные выражения

Регулярные выражения пишутся только один раз и больше не трогаются. Их просто нереально разобрать и изменить.

Но ситуацию можно исправить, если добавить комментарии и правильно воспользоваться f-строками.

📕 Статья по этой теме

#урок
📌 Модуль copy

В python есть модуль, который называется copy. У него только две функции: copy() и deepcopy().

copy(x) — поверхностно копирует объект. Просто создаёт новый, сохраняя все ссылки внутри него.

deepcopy(x) — глубокое клонирование. Создаёт новый и рекурсивно копирует элементы внутри.

📕 Документация

#урок
Отсутствующие элементы в словаре

Если в словаре нет определённого ключа, то вызывается __missing__. Суть в том, что мы можем переопределить этот метод.

Примерно по такому принципу, как на фото выше, работает defaultdict из модуля collections.

#урок
📌 Методы строк, о которых нужно знать

ljust, rjust, center — используются для позиционирования текста. На самом деле, они просто создают строку, не меньше width и заполняют её пробелами (или другим, переданным символом).

strip — удаляет пробелы, табуляцию, перенос на новую строку и тому подобные символы из конца и начала строки. Если передать другие символы, то функция избавится от них. rstrip и lstrip делают то же самое, только в конце и в начале строки.

splitlines — возвращает список строк в тексте. Его лучше использовать вместо split('\n').

#урок
📌 isdecimal() vs isdigit() vs isnumeric()

Эти три метода str используются для определения, является ли строка числом, но у них есть небольшие отличия.

'123'.isdecimal() — проверяет, является ли строка только набором цифр (1-9). В то время как:

· '123⁴'.isdigit() вернёт True, даже если в строке есть маленькие цифры (² или \u00B2).

· '½'.isnumeric() вернёт True, даже если это дробь (½ или \u00BD).

#урок
📌 Атрибуты — штука странная

Они хранятся в переменной __dict__. Если вы добавите, обновите, удалите атрибут, изменится и эта переменная.

Подобных подход занимает много ОЗУ, если у вас много маленьких объектов. В таком случае используют __slots__.

В этой переменной хранится список атрибутов, которые будут у класса. __dict__ пропадёт, а значит нельзя будет добавлять/удалять атрибуты.

#урок
page2.png
218.1 KB
Шпаргалка по Python

Шпаргалка по основным понятиям языка: типам переменных (int, float, bool, str, None), структурам данных (list, tuple, set, dict), функциям и ООП.

Поможет новичкам лучше усвоить знания и быстрей изучить язык.

#урок
📌 Куча if'ов в элегантный код

В Python 3.10 появился Pattern matching. По своей сути — синтаксический сахар. В результате это всё равно превратится в if'ы, но человеку будет легче читать код.

С помощью match/case мы можем определять поведение объект на основе данных. Это похоже на switch/case в си-подобных языках, только возможностей в разы больше.

📕 Документация

#урок
📌 Только ключевые и только позиционные аргументы

Позиционные аргументы — те, что передаются по позиции (доступно с Python 3.8). Ключевые — те, что передаются за счёт key=value.

Все аргументы до косой черты (/) считаются позиционными, то есть передать в них данные можно только в определённом порядке.

Все аргументы после звёздочки (*) считаются ключевыми, то есть передать данные можно только с помощью key=value.

📕 PEP 570 (позиционные) и PEP 3102 (ключевые)

#урок
Самое время побыть Open Source разработчиком

Если вы уверены, что готовы к серьёзным проектам, то можете попробовать себя в Open Source разработке на Github.

К тому же, такое занятие сильно прокачает ваши навыки и сделает более привлекательным в глазах работодателя.

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

#урок
Полезная шпаргалка для поиска быстрых решений в Python-проектах, охватывает: переменные «sys.argv», методы файлов, списка, даты и времени, переменные ОС Python, индексы, срезы и т.д.

Скачать в формате PDF в широком разрешении можно тут