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

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

Преобрести рекламное размещение: https://telega.in/c/Python_libr
加入频道
📌 Модуль 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 в си-подобных языках, только возможностей в разы больше.

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

#урок
📌 Скажи мне свой знак зодиака

aztro — проект с гороскопами. У него есть свой API, доступ к которому можно получить с помощью PyAztro.

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

Вы передаёте свой знак зодиака и можете узнать счастливое число, время, совместимость с кем-то и получить краткое описание.

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

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

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

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

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

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

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

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

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

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

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

Скачать в формате PDF в широком разрешении можно тут
🎙 Собеседование Python. Разработчик самоучка.

Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз ))

Делимся ссылкой на интересное собеседование на должность Python-разработчика. Можно подчеркнуть для себя множество полной информации и нюансов: https://youtu.be/maopv6Sm550

#Собеседование
📌 Принцип YAGNI

Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.

Инициатива это хорошо, но из-за неё можно потерять время и деньги. Клиенту нужен работающий продукт, а не куча разных фич.

Если вы нарушите принцип то, в лучшем случае, потеряете своё время, в худшем — время команды и деньги клиента.

#урок
Работаем с TOML

В версии Python 3.11 появилась новая библиотека — tomllib. Она позволяет работать с форматом TOML.

TOML несколько отличается от других форматов, ведь имеет нативную поддержку массивов, словарей, времени.

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

#урок
📌 Всегда случайный ID

Есть такая штучка, как UUID (Universally unique identifier) — универсальный уникальный идентификатор.

Суть в том, что значение идентификаторы всегда уникальные. Если создадите 1 млрд таких, то вероятность встретить двое одинаковых — 0.0000000001%.

Такое можно использовать в базах данных (для задания ключей), что давать имена файлам или в качестве уникальных имён любых веб-источников.

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

#урок
📌 Вы знали, что поведение операторов можно менять?

Вся суть в том, что все операторы используют обычные функции, так называемые магические методы.

Мы вполне можем переопределить поведение, изменив код внутри функции. Найти весь список функций и операторов можно в модуле operators.

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

#урок
📌 Не бойтесь писать понятный код

Раньше было страшным злодеянием взять и оставить 1000 * 60 * 60, сейчас же все компьютеры умные и могут просчитать выражение ещё до запуска приложения.

Например, если у вас есть 355 дней в секундах, можно оставить 60 * 60 * 24 * 355, так человек быстрее поймёт, откуда взялось это число и что оно значит.

В производительности ничего не потеряете, а код сделаете понятнее... Для себя через три месяца

#урок
📌 Шпаргалка по NumPy

#урок