Разъяснивший Python
8.19K subscribers
2.42K photos
40 videos
30 files
2.27K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
translate - это шустрая библиотека-переводчик, которая может заменить Google/Yandex Translator API 🐝

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

Но есть минус... Из коробки, translate использует MyMemory в качестве провайдера-переводчика, а у его API есть ограничения на количество переводов в день 😐

Но этого можно избежать, если в качестве провайдера определить Microsoft Translator. Для этого нужно получить специальный ключ и передавать его каждый раз при вызове метода.

В общем, более подробно об этой либе можно почитать в документации 👌🏻

Исходник - https://pastebin.com/eJNhWVk2
👍5🤔3🔥1👏1
Python 3 Without Prior Knowledge: Learn how to program a neural network within 7 days
Benjamin Spahic
2022

C помощью этого руководства для начинающих вы сможете в кратчайшие сроки понять основные принципы ООП, связанные с переменными, циклами и классами. Это руководство охватывает основы программирования на языке Python. Реальные практические примеры, графики и небольшие упражнения помогают параллельно с пониманием.

🟢 Читать/скачать книгу

#python #eng
👍3
Давайте поговорим про del

Оператор может принимать список и в таком случае он поочерёдно рекурсивно «удаляет» цели.

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

Если это атрибут, срез, то вызывает магические методы и передаёт управление объекту. Например, у атрибутов выполнится __delattr__(attr), а у списков — __delitem__(index).

#объяснение
👍20😐114👾1
del lazarus

В опросе объект не удалился из памяти, поскольку на него осталась ссылка в глобальной переменной runner.

Даже если вы избавитесь от runner, объект всё равно будет «висеть» в памяти, а всё потому что сборщик мусора считает, что он уже удалён.

#объяснение
🤓10🤔4🤯4👍3👏1
Пишем TikTok бота на Python

Смотреть видео

P.S. Не хейтите пожалуйста за TikTok
14🤮6👎4🤔4👍2
Это set_bit() и clear_bit()

С помощью двух операций, которые были в опросе мы можем задавать или сбрасывать бит в числах. Реализация на фотографии.

| (ИЛИ) если встречает 0 и 0 оставляет 0, в остальных же случаях ставит 1. & (И) в свою очередь оставляется единиц только если встречает 1 и 1.

#объяснение
👍11🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Маск показал обезьяну печатающую силой мысли, благодаря вживленному нейроимпланту Neuralink.🤯

Код скорее всего написан на Python.
18👍4👎2🤡2🤣2❤‍🔥1🥰1😁1
Универсальный уникальный идентификатор (UUID)

UUID — это значение, которое можно смело считать уникальным. Да, есть риск совпадений, но он настолько низок, что его можно вообще игнорировать.

Суть в том, что в uuid1() генерируется на основе времени и информации устройства. Создание копий примерно в один и тот же момент и на той же машине привело к «совпадению». uuid4() же всегда создаёт случайные числа.

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

#объяснение
👍142
Окей, всё по порядку

Первым делом у нас берётся крайняя левая и крайняя правая часть, получаем some_list = [0, 1]. Потом у нас вызывается some_list[0] = [0, 1].

В теории, это должно было привести к ошибки, но поскольку переменная some_list уже определена — такого не будет.

Так как some_list и [0, 1] это одно и то же (в данном случае), то получим some_list[0] = some_list. Ссылка на самого себя отобразится в списке как [...].

#объяснение
🤯27👍7👎3
contextmanager

Мы все пользуемся with и, согласитесь, это очень удобная фича. Но у неё есть один недостаток — для реализации одной функции нужен огромный класс.

Проблему решил декоратор contextmanager из contextlib. Просто повесив его на функцию мы можем быстро сделать то, что нам надо. Как его применять найдёте тут.

#теория
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
Типичная реклама айти курсов:
😁37🤡92🤬2🤮2👍1😍1🤨1
json.dumps() не принимает UTF-8

Все символы, которые не относятся к ASCII будут экранированы. Это говорит нам, что вывод всегда будет набором допустимых символов ASCII.

Тут есть два решения: первое это задать ensure_ascii=False, тогда значения останутся в виде unicode или декодировать строку на стороне получателя.

Можете почитать на StackOverflow рассуждение на эту тему.

#объяснение #json
👍5🔥4
typing.TypeVar

Полезно, если вы не точно не знаете что пойдёт на вход, а тип на выходе зависит от того, что пришло. Это ещё называют Generics.

На месте T появится тип, который пользователь передал на в x. То есть, если мы вызовем repeat(1, 5) то T будет int, а вернётся тип, принадлежащий Sequence[int].

#теория
🔥5👍1🤔1
Полезные материалы про карьеру в IT от Selectel🔥

В канале про:
— технологии (паттерны проектирования, работа в Git, полезные линтеры)
— карьеру (как составить личный план развития или как провести код-ревью)

А еще инсайты про работу в команде Selectel (как проходит ретро команды или шавадэй)

Подписывайтесь → @selectelcareers

Реклама. ООО Селектел 2VtzqvjnmoX
Fullstack на Django и Vue.js

Статья про расширения и технологии, которые можно использовать при создании своего сайта на Django.

В статье говорится про авторизацию, тестирование, создание Frontend'а, загрузку сайта на прод, аналитику и как это всё правильно настроить.

Читать

#теория
👍3
pyarmor - библиотека, предназначенная для защиты исходного кода от изменения и взлома 🛡

Так как Python код переводится в более простой bytecode, который нужен для ускорения работы интерпретатора, код весьма сложно защитить от взлома. Даже если конвертировать программу в исполняемый .exe файл, достать информацию из полученного экзешника не составит труда.

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

Работать с pyarmor очень просто, нужно только установить библиотеку и передать ей на вход путь до директории с python-скриптами 🔸

В консоли вводим:
>>> pip install pyarmor

>>> pyarmor obfuscate C:\Users\User\test

В текущей рабочей директории сгенерируется папка dist , в которой и будут лежать обфусцированные файлы. Выглядеть они будут примерно так, как на скриншоте. Но при запуске будут выполняться точно так же, как и исходные скрипты.

Более подробно об этой либе можно почитать в тут 👌🏻

P.S. также есть версия с графическим интерфейсом - pyarmor-webui
5👍2🤔2
contextlib.suppress

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

По своей сути это try/except Exception: pass только с with. Такой вариант выглядит приятнее и занимает на одну строку меньше.

#теория
👍12
TYPE_CHECKING

Полезная переменная, если у вас есть цикличные зависимости. Например, у Article есть category: Category, а у Category есть атрибут articles: list[Article].

С TYPE_CHECKING можно спрятать импорты. Интересный факт, эта константа всегда False, а значит код в Runtime никогда не выполнится.

#теория
👍16