ru
Feedback
Senior Python Developer

Senior Python Developer

Открыть в Telegram

№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Больше
2025 год в цифрахsnowflakes fon
card fon
44 575
Подписчики
Нет данных24 часа
-907 дней
-55930 день
Архив постов
Фото недоступноПоказать в Telegram
Функция sample Функция sample() модуля random возвращает список длины k случайных элементов, выбранных из последовательности или множества. Исходная последовательность остается неизменной. Если исходное множество содержит повторы, то каждый случай является возможным выбором в результирующем списке.
Показать все...
Фото недоступноПоказать в Telegram
Преобразование изменяемых данных в неизменяемые Изменяемые данные (например, словари или списки) — это структуры, к которым могут быть добавлены новые значения. Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Этого можно достигнуть с помощью функции frozenset.
Показать все...
Фото недоступноПоказать в Telegram
defaultdict: безошибочный словарь Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку. Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого: — создаст этот ключ; —создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку; —вернёт вам это значение.
Показать все...
Фото недоступноПоказать в Telegram
Работаем со временем без головной боли При работе со временем и датами у встроенных модулей есть несколько неприятных моментов: — Их слишком много: datetime, time, calendar, dateutil, pytz и другие; — В них слишком много типов: date, time, datetime, tzinfo, timedelta, relativedelta и т. д. Но есть пакет arrow, который решает многие проблемы. Во-первых, там есть все необходимое. Во-вторых, все объекты имеют один и тот же тип Arrow. Большой плюс в том, что пакет совместим с основными встроенными типами. Например, в коде на картинке преобразовано datetime в Arrow и обратно. Еще из приятных бонусов: там есть функция humanize, которая конвертирует время в читаемый текст.
Показать все...
Фото недоступноПоказать в Telegram
Assert Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError. Исключения AssertionError предназначены скорее для программистов. При написании программ на этапе разработки мы должны видеть, что делаем что-то не так (к примеру, передали в функцию некорректное значение). Не нужно, например, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try except. Если таких мест будет очень много, то это затронет и производительность программы.
Показать все...
Фото недоступноПоказать в Telegram
Композиция классов Один из способов организации взаимодействия между классами – это композиция, или же ассоциация, классов. В этом случае один из классов (в примере выше это Salary) является полем другого (Employee). Сложного здесь, как вы видите, ничего нет. Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора. В таком случае необходимо использовать слабые ссылки из модуля weakref.
Показать все...
Фото недоступноПоказать в Telegram
Находим соответствия в строках В стандартной библиотеке Python существует модуль difflib, в котором есть интересный метод get_close_matches. Он позволяет найти в списке строки, похожие на некую исходную. Данный метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент – список, в котором выполняется поиск. Также в метод можно передать необязательный аргумент n, который задаёт максимальное число возвращаемых совпадений.
Показать все...
Фото недоступноПоказать в Telegram
Оператор объединения словарей В Python есть много разных способов объединить несколько словарей. На картинке работает оператор |, с помощью которого можно это делать проще всего.
Показать все...
Фото недоступноПоказать в Telegram
Ключевое слово nonlocal Похожее по функционалу на global, ключевое слово nonlocal позволяет обращаться к переменным из нелокальной области видимости. Поведение nonlocal заключается в том, что интерпретатор ищет переменную в ближайшей области видимости. Основное различие с global в том, что с помощью nonlocal нельзя получить переменные из глобальной области видимости.
Показать все...
Фото недоступноПоказать в Telegram
Ключевое слово global Изначально мы не можем изменять значение переменной в другой области видимости, но мы можем это сделать, поменяв область видимости переменной на глобальную с помощью ключевого слова global. Мы даже можем определить новую глобальную переменную внутри функции, но не нужно этим злоупотреблять, т.к. это будет засорять глобальную область видимости и приводить к нежелательным ошибкам.
Показать все...
Фото недоступноПоказать в Telegram
Копируем файл в другой каталог Метод Shutil.copy() в Python используется для копирования содержимого исходного файла в целевой файл или каталог. Он также сохраняет режим разрешений файла, но другие метаданные файла, такие как время создания и изменения файла, не сохраняются. Подробнее с модулем Shutil можно ознакомиться здесь.
Показать все...
Фото недоступноПоказать в Telegram
Примеры форматирования строк Метод s.format() представляет собой основной метод API. Он принимает строку формата format_string и произвольный набор позиционных *args и ключевых **kwargs аргументов. Это просто оболочка, которая вызывает s.vformat(). Подробнее про форматирование строк можно почитать здесь.
Показать все...
Фото недоступноПоказать в Telegram
#вопросы_с_собеседований Что означает self в классе? Self ссылается на экземпляр класса. Так метод может обновлять объект, к которому принадлежит. На картинке передача self в init() дает возможность установить цвет экземпляра при инициализации.
Показать все...
Фото недоступноПоказать в Telegram
#вопросы_с_собеседований Что такое pickling и unpickling? Модуль pickle принимает любой объект Python, преобразует его в строковое представление и сохраняет в файл с помощью функции dump, такой процесс называется pickling. Процесс извлечения исходных объектов Python из сохраненного строкового представления называется unpickling.
Показать все...
Фото недоступноПоказать в Telegram
Получаем текст с картинки У Google есть система Tesseract, которая позволяет парсить текст с картинок с помощью оптического распознавания символов. В качестве обертки над их системой был создан пакет pytesseract, который удобно и легко использовать. Чтобы получить текст с картинки, надо вызвать метод image_to_string. Если вас интересует текст на русском, то следует указать аргумент lang как 'rus'. Для открытия картинок рекомендуется использовать pillow, хоть и имеется возможность просто указать путь к файлу в виде строки.
Показать все...
Фото недоступноПоказать в Telegram
#вопросы_с_собеседований Напишите функцию, которая будет принимать два списка чисел (вложенный и обычный) и проверять, все ли числа в подсписках вложенного принадлежат множеству чисел второго, обычного списка Примечания: 1) пустой список считаем валидным подмножеством множества чисел второго списка 2) в каждом отдельном списке (как во вложенных, так и во втором, обычном списке) числа будут уникальными.
Показать все...
Фото недоступноПоказать в Telegram
Генерируем фейковый профиль человека С помощью метода profile пакета Faker мы с легкостью можем получить информацию о несуществующем человеке.
Показать все...
Фото недоступноПоказать в Telegram
Прогресс выполнения программы Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль tqdm является простым и лаконичным вариантом. Привычный range можно заменить на trange для визуализации прогресса. А для итерации по какой-либо последовательности достаточно просто передать её в функцию tqdm. Также модуль хорошо себя зарекомендовал и в Jupyter Notebook.
Показать все...
Фото недоступноПоказать в Telegram
Сортировка списков В Python есть два способа сортировки списка: встроенный метод списка list.sort() и встроенная функция sorted(). Вот в чем заключается их отличие: - Функция sorted() принимает итерируемый объект и возвращает новый отсортированный список, не изменяя исходный. - Метод list.sort() сортирует список на месте, то есть изменяет исходный список. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Декоратор @classmethod Декоратор @classmethod используется для создания методов класса. Метод класса — это метод, который привязан к классу, а не к его экземпляру. Это означает, что вы можете вызвать метод класса на самом классе, а не на его экземпляре. Один из распространенных способов использования методов класса — это создание фабричных методов, которые возвращают новые экземпляры класса. В этом примере мы определяем класс MyClass с методом __init__, который принимает один аргумент value. Затем определяем метод класса from_string, который принимает строку и преобразует ее в целое число с помощью функции int. Метод возвращает новый экземпляр класса MyClass, созданный с помощью переданного значения. Метод класса определяется с помощью декоратора @classmethod и принимает первым аргументом ссылку на сам класс (обычно называемую cls). Внутри метода мы используем эту ссылку для создания и возврата нового экземпляра класса. #это_база
Показать все...