Библиотека питониста | Python, Django, Flask
40.2K subscribers
2.83K photos
79 videos
51 files
4.42K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Какой средой разработки пользуетесь?
#интерактив
Нижнее подчеркивание

🐍 Во-первых, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны – например, в циклах for.

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

🐍 В-третьих, руководство модуля gettext рекомендует псевдоним его функции gettext() для _(), чтобы минимизировать загромождение вашего кода.
#код
👍214
Объясните, как в Python осуществляется управление памятью.

В Python объекты и структуры данных находятся в закрытой динамически выделяемой области private heap, которая управляется менеджером памяти Python. Он делегирует часть работы программам распределения ресурсов allocators, закрепленным за конкретными объектами, и одновременно с этим следит, чтобы они не выходили за пределы динамически выделяемой области.

По факту данной областью управляет интерпретатор. Пользователь никак не контролирует данный процесс, даже когда манипулирует ссылками объектов на блоки памяти внутри динаической области. Менеджер памяти Python распределяет пространство динамической области среди объектов и другие внутренние буферы по требованию.
#вопросы_с_собеседований
👍259🔥4
7 способов совместного использования массива NumPy между процессами

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

Читать статью
10👍6
setattr()

С помощью данной функции мы можем менять атрибуты объекта во время выполнения программы. Первым аргументом она принимает объект, вторым — имя атрибута, а третьим — значение, которое необходимо установить.
#код
👍2010
Голосовой ввод с микрофона в Python

Установка пакета — pip install SpeechRecognition.

Важная вещь, которую вы должны иметь в виду, что здесь мы будем работать с микрофоном, поэтому вам необходимо знать идентификатор устройства вашего устройства ввода звука.
12😁10👍3
Подборка бесплатных курсов по Python и машинному обучению. Сохраняй, чтобы не потерять и когда-нибудь пройти!

1. Ускоренный курс по машинному обучению — основы машинного обучения, включает видеолекции от исследователей из Google.

2. Основы Python для анализа данных — программирование на Python.

3. Введение в Data Science и аналитику — все основы Data Science и Data Science Life Cycle.

4. Линейная регрессия — как использовать R для реализации линейной регрессии, одного из наиболее распространенных подходов к статистическому моделированию

5. Основы R — как обрабатывать, анализировать и визуализировать данные.

6. Визуализация — основные принципы визуализации данных и способы их применения с помощью ggplot2.

7. Введение CS50 в программирование на Python, май 2023 г.
20👍2
🚩 5 красных флагов: как из текста вакансии понять, что компания — не очень

Как определить работодателя-абьюзера в АйТи? Объясняем на реальных примерах.

Читать статью
👍3317
Кэшированные атрибуты

Во встроенном пакете functools присутствует декоратор @cached_property, позволяющий кэшировать результат метода и загнать его в атрибут.

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

Подобное кэширование полезно в случаях, когда в методе производятся вычисления, которые нагружают систему и занимают много времени.
#код
👍348
Шифрование и расшифровка паролей

Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.

В приведенной выше реализации ключ шифрования генерируется с помощью метода Fernet.generate_key() и сохраняется в файле для дальнейшего использования.

Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography, где текст шифруется с помощью метода encrypt() и расшифровывается с помощью метода decrypt().
#код
👍2710
Что будет в результате выполнения данного кода?

Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.

Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.

Особенно неприятным это обстоятельство делает то, что оно может привести к ошибкам, которые действительно трудно отследить, поскольку во время выполнения кода не возникает никаких ошибок.
#вопросы_с_собеседований
👍2812🤔2
Узнаем, сколько всего определенных букв в строке

Один из способов узнать количество определенных букв в строке максимально быстрым методом – использовать метод count для строки. Этот метод принимает символ или подстроку и возвращает количество их вхождений в строку.

Этот метод является достаточно быстрым, так как использует внутренние оптимизации CPython, которые работают на низком уровне. Он также не требует дополнительной памяти, за исключением простой переменной, используемой для хранения результата.
#код
👍1511😁2🤔1
Что выведет код?
Anonymous Quiz
42%
1 4
6%
4 1
13%
1 1
40%
Error
20😁6🤔5👍4👏2
Узнаем разницу в днях между датами представленными в виде строк

В данном коде мы используем функцию strptime из модуля datetime, чтобы преобразовать строки в объекты datetime. Затем мы вычисляем разницу между датами с помощью оператора - и получаем абсолютное значение разницы с помощью функции abs. Наконец, мы получаем разницу в днях, используя атрибут days разницы объекта.
#код
22👍7
Очередной #дайджест статей по Python:

🐍 Как создать голосового ассистента
В данной статье автор рассказал, как можно сделать простого голосового ассистента. Все это в Python при помощи некоторых библиотек.

🐍 Ray Casting 3D игра на Python + PyGame

🐍 Использование python-docx-template для динамического создания закладок и ссылок на них в документах Word
Модуль содержит функционал для вставки в документ внешних ссылок, но когда автору понадобилось создавать по шаблону внутренние ссылки (на конкретное место в документе), такого функционала не нашлось, поиск в сети тоже ничего не дал. В статье он предложил свой способ вставки закладок и ссылок на них при помощи python-docx-template.

🐍 Измерение покрытия python сервисов для end-to-end тестов
Как измерить покрытие автотестами? Данный вопрос всегда вызывает жаркие дискуссии в рядах тестировщиков.

🐍 Под капотом Python. Тонкости популярных конструкций with и contextmanager
В этой статье описано, как написать менеджер контекста, как создать функцию-генератор для декоратора contextmanager. Опытные разработчики могут узнать что-то новенькое или дополнить статью ценными комментариями.

🐍 Как правильно написать калькулятор на питоне с помощью eval()
О том, почему eval стоит использовать с осторожностью.

🐍 Пишем микро-shellcode в формате ELF вручную
Уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но здесь представлено другое решение. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин заголовков ELF, необходимых для запуска).
12👍9