Python - Советы, библиотеки, гайды
19.7K subscribers
1.17K photos
25 videos
6 files
590 links
Всё для Python программиста :3
Готовый код, советы, лайфхаки, годные библиотеки, уроки и многое другое!

Автор - Абрахам (@priler)

РКН: https://kurl.ru/uXZzR
Download Telegram
secrets — встроенный в Python модуль, для генерации случайных значений.

Что такое secrets?

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

У модуля secrets интерфейс примерно такой же как у random, так что сложностей с ним быть не должно.

Модуль secrets предоставляет:

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

Плюс ко всему - random не годится для криптографических операций из-за своего псевдо-рандома, вместо него лучше использовать модуль secrets :)

Стоит отметить, что модуль довольно гибкий, поэтому вам не составит труда настроить его под себя и для себя :3

Документация и примеры кода здесь.
👍40😱1
🐥 Задача по Python #3

Описание

Цель задачи – сконвертировать переданную в функцию строку в новую строку, где каждый символ новой строки будет являться “(“, если символ в старой строке встречается только один раз, и “)” – если символ в старой строке встречается два и более раз. Символы должны быть регистронезависимы.

Уровень сложности: лёгкий.

Примеры

"din" => "((("
"recede" => "()()()"
"Success" => ")())())"
"(( @" => "))(("

Свой вариант решения в комментарии 💭
Кодом делиться через pastebin.org или repl.it.

#задачи
👍32🔥1😱1🎉1
Рисую на питоне 🐍
Это вам не модуль turtle 🌚
👍119🤔28😁18🔥14🤯6😢3🤩21😱1
dateutil — модуль, который предоставляет продвинутую обработку даты и времени на Python.

Почему стоит выбрать dateutil?

Работать с датой и временем с помощью встроенного модуля datetime в большом проекте — непростая задача. Учитывая количество изменений, которые требуется применить, при получении сырых данных.

Для этих целей был создан модуль dateutil. Он предоставляет расширения для методов, уже имеющихся в datetime.

Dateutil разбит на несколько подклассов: easter, parser, relativedelta, rrule, tz и некоторые другие.

Стоит отметить, что dateutil зависит от модуля datetime. Он использует его объекты.

Подкласс relativedelta предназначен для применения к существующей дате и времени и может заменять определенные компоненты этой даты и времени или представлять интервал времени.

В его основу положена характеристика великолепной работы М.-А. Лембург в своем расширении mx.DateTime. Однако обратите внимание, что этот тип НЕ реализует тот же алгоритм, что и его работа. НЕ ожидайте, что он будет вести себя как аналог mx.DateTime.

Это значит, что вы можете добавлять дни, месяца и года к текущему объекту datetime. Также есть возможность работать с интервалами, как это показано на примере выше :)

Ставится командой pip install python-dateutil
Документация и примеры кода здесь.
👍272🤔2😱1
🐥 Задача по Python #4

Пролог

Давайте сделаем так, чтобы Боб никогда не пропустил ни одного интересного номера. Мы взломали компьютер его машины, и у нас есть коробка, которая считывает пробег. Коробка приклеенная к его приборной панели, которая загорается желтым или зеленым в зависимости от того, получает ли она 1 или 2 (соответственно).

Описание

Напишите функцию, которая анализирует введенное число миль и возвращает 2, если число «интересно» (см. ниже), 1, если интересное число встречается в пределах следующих двух миль, или 0, если число не интересно.

«Интересные» числа

Интересные числа — это числа из 3 и более цифр, которые соответствуют одному или нескольким из следующих критериев:

• Любая цифра, за которой следуют все нули: 100, 90000
• Каждая цифра — это одно и то же число: 1111.
• Цифры последовательные, сращенные†: 1234
• Цифры идут последовательно, по убыванию‡: 4321
• Цифры представляют собой палиндром: 1221 или 73837.
• Цифры соответствуют одному из значений в массиве awesome_phrases.
• Для возрастающих последовательностей 0 должен стоять после 9, а не перед 1, как в 7890.
• Для убывающих последовательностей 0 должен стоять после 1, а не перед 9, как в 3210.

Примеры

# "скучные" номера
is_interesting(3, [1337, 256]) # 0
is_interesting(3236, [1337, 256]) # 0

# прогресс по мере приближения к "интересному" числу
is_interesting(11207, []) # 0
is_interesting(11208, []) # 0
is_interesting(11209, []) # 1
is_interesting(11210, []) # 1
is_interesting(11211, []) # 2

# приближается к предоставленной "потрясающей фразе"
is_interesting(1335, [1337, 256]) # 1
is_interesting(1336, [1337, 256]) # 1
is_interesting(1337, [1337, 256]) # 2

Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
👍26🤔3🔥1😱1
numpy — библиотека с открытым исходным кодом. Возможности: поддержка многомерных массивов; поддержка высокоуровневых математических функций, предназначенных для работы с многомерными массивами.

Как работает numpy?

Для начала разберемся в устройстве массивов, которые обрабатывает NumPy.

Рассмотрим однородный двумерный массив в примере выше. Он выглядит как простая таблица — две оси значений и ячейки внутри (элементы массива). Если появится третья ось, то массив станет трехмерным. Важное условие — все элементы должны иметь единый тип данных, например только целые числа.

Конечно, кроме двумерных массивов, библиотека NumPy обрабатывает и другие, с различным количеством осей. Эту вариативность обозначают числом N, как любую переменную в математической задаче. Поэтому обычно говорят, что NumPy работает с N-мерными массивами данных.

numpy может пригодится для:

• Научных вычислений.

• Создания новых массивных библиотек.

• Data Science.

• Machine Learning.

• Визуализации данных.


Стоит отметить, если вы захотите углубиться в numpy - обязательно почитайте книгу Трэвиса Э. Олифанта « Руководство по NumPy», ведь большая часть документации взята именно из этой книги :)

Ставится командой pip install numpy
Документация и примеры кода здесь.
👍244🔥2🤔1😱1
- Привет, чем ты занимаешься?
Программирую на Python...

...Буквально
76👍18😁17🔥3😱3
qrcode — довольно простой модуль, для генерации qr cod'ов в Python!

Разберёмся с формулировками:

Метод QRCode.add_data() добавит данные к текущему объекту qr. Чтобы добавить новые данные путем замены предыдущего содержимого в том же объекте, сначала используйте метод QRCode.clear().

QR-код — это виртуальная база данных в виде незамысловатого значка и хранит в себе около 4200 символов, в последствии QR-код можно отсканировать и получить информацию заложенную в нём. Аббревиатура QR (quick response) переводится как быстрое реагирование.

Примеры

На примере выше мы добавляем данные с помощью метода qr.add_data , определеляем переменную img и сохраняем наш qr-код.

Очищаем qr-код и добавляем новые данные :3

У модуля qrcode есть множество методов для кастомизации qr-кодов. Например в телеграмме тоже есть кастомизация qr-кодов(для входа в аккаунт или отправки qr-cod'a своего аккаунта. Так же модуль довольно гибок, поэтому настроить его можно полностью под себя :)

Ставится командой pip install qrcode
Документация и примеры кода здесь.
👍36😁9😱1
reduce() — функция, которая последовательно применяет функцию-аргумент к элементам списка и возвращает единое значение.

Чем отличается reduce от map и filter?

reduce() не возвращает новый список, основанный на функции и итерационный, который мы передали. Вместо этого он возвращает одно значение.

Как работает reduce?

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

Этот процесс повторяется до тех пор, пока мы не пройдем через все элементы последовательности.

Необязательный аргумент initial используется, когда он присутствует, в начале этого цикла с первым элементом в первом вызове функции. В некотором смысле элемент initial является 0-м элементом перед первым, когда он указан.

Подробнее про функцию reduce вы можете почитать здесь :3
👍17😱92🤔2😢1
Введение в Функциональное Программирование (ФП)

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

Удачного вам чтения!
👍41😢1
А чтобы питончик не кушал столько памяти - удаляйте ненужные данные используя оператор del 🌚
😱92👍16😁10🤯3🔥2
🐥 Задача по Python #5

Пролог

Маркетинговая команда тратит слишком много времени на ввод хэштегов.
Давайте поможем им с нашим генератором хэштегов!

Правила

• Он должен начинаться с хэштега (#).

• Во всех словах первая буква должна быть заглавной.

• Если окончательный результат длиннее 140 символов, он должен вернуть false.

• Если ввод или результат представляет собой пустую строку, он должен вернуть false.

Примеры

" Hello there"    =>  "#HelloThere"
" Hello World " => "#HelloWorld"
"" => false


Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
👍343
PrettyTable — довольно полезный модуль для создания простых таблиц и вывода их в терминал или текстовый файл.

Модуль PrettyTable был вдохновлен таблицами ASCII, используемыми в оболочке PostgreSQL.

Возможности модуля PrettyTable:

• Установка ширины заполнения столбца, выравнивание текста или границы таблицы.
• Сортировка данных.
• Выбор отображения столбцов и строк в окончательном выводе.
• Чтение данных из CSV, HTML или курсора базы данных.
• Вывод данных в ASCII или HTML.

Пример(см. выше)

Для начала, необходимо создать экземпляр PrettyTable(), чтобы потом добавлять в него некоторые данные. Далее необходимо установить имена полей, используя атрибут PrettyTable.field_names, а затем с помощью списка добавить их(данные) за один раз, используя метод PrettyTable.add_rows() .

Добавить данные можно и построчно, используя метод PrettyTable.add_row() , но в данном примере мы будем использовать однострочный метод.

Модуль, несмотря на свою простоту — популярен, и имеет 7.3 миллиона скачиваний в месяц 🤯

Ставится командой pip install prettytable
Документация и примеры кода здесь :3
👍38🔥52🤯1
Ачё в смысле 🤔
Это как вообще понимать 🌚!!!1
👍90😁28🤔10🤯3🔥2🎉1
Рефакторинг улучшает функциональность и архитектуру кода, но нужен бывает далеко не всегда.

Рефакторинг — это способ улучшить психологическое состояние программиста путем изменения кода и сроков сдачи проекта :)

Рефакторинг — нематериальный предмет, кастуется на разработчика, дает защиту от проджект-менеджера и создает ауру таинственности. При срабатывании крита дает неожиданные оптимизации или кастует рефакторинг на всех разработчиков вокруг. Кулдаун — раз в три спринта 🌚
👍36😁91
🐥 Задача по Python #6

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

Уровень сложности: средний.

Примеры:

"один" => 1
"двадцать" => 20
"двести сорок шесть" => 246
"семьсот восемьдесят три тысячи девятьсот девятнадцать" => 783919


Примечания:

Минимальное количество "ноль" (включительно)

Максимальное количество, которое должно поддерживаться, составляет 1 миллион (включительно)

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

Все проверенные номера действительны, вам не нужно их проверять

Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
👍16🤔6🔥21
Ачё в смысле, где он вообще смог скачать питон с вирусами? 😳
😁121👍19🤔10🤯8😢4😱3🎉2🔥1🤩1
PyQt — это библиотека Python для создания приложений с графическим интерфейсом с помощью инструментария Qt.

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

В библиотеке PyQt практически полностью реализованы возможности Qt. Это более 600 классов, более 6000 функций и методов, включая:

• Существующий набор виджетов графического интерфейса.
• Стили виджетов.
• Доступ к базам данных с помощью SQL (ODBC, MySQL, PostgreSQL, Oracle).
• QScintilla, основанный на Scintilla виджет текстового редактора.
• Поддержку интернационализации (i18n).
• Парсер XML.
• Поддержку SVG.
• Интеграцию с WebKit, движком рендеринга HTML.
• Поддержку воспроизведения видео и аудио.

PyQt обновляется на протяжении 24-х лет, поэтому проблем с библиотекой быть не должно :3

Стоит отметить, что PyQt совместим с Windows, Unix, Linux, macOS, iOS и Android. Это может быть привлекательной функцией, если вы ищете библиотеку или инфраструктуру для разработки многоплатформенных приложений с родным внешним видом для каждой платформы.

Ставится командой pip install PyQt6 (последняя версия PyQt)
Документация и примеры кода здесь :)
👍23🔥7🤯4
This media is not supported in your browser
VIEW IN TELEGRAM
Сканирование и подсчёт объектов в Python!

Как вы могли заметить на гифке выше - идёт обнаружение и подсчёт объектов, мы кладём объект на выделенную область и идёт подсчёт остальных объектов(включительно) используя opencv :)

Как это работает?

Есть 6 этапов, а именно:

1.
Определение окна, в которое мы поместим объект, который мы хотим обнаружить и подсчитать.
2. Создание функции для обнаружения объекта.
3. Извлечение объектов, по нашему выбранному объекту.
4. Рисование контуров в соответствии с выбранным объектом.
5. Подсчёт объектов.
6. Обнаружение сразу нескольких объектов(имеется ввиду выбор объектов).

Суммарно получается 487 строк кода, использованные модули numpy и opencv.

Код вы можете найти на гитхабе автора, так же у него есть свой ютуб канал :3

Кстати, этот же автор создал пончик и симуляцию гравитации 🤯
🔥40👍17🤯4😱2