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

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

РКН: https://kurl.ru/uXZzR
Download Telegram
🐍 А вы знали? Выпуск №23

Преобразование входящих данных в список
.

Почему это происходит?

На фото выше показан сам кусочек кода, где мы указываем что функция input() для ввода данных, а затем функция split() для разделения входящих данных по пробелу будет в структуре данных list.

Интересный факт :3

Чтобы вывод был без скобок, запятых и других символов листа, перед переменной нужно поставить звёздочку: print(*lst). Это называется распаковка :)
👍28😁17🔥42😱2
Почему бы и нет 🤔
😁126👍13🤔52😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Очень красивая анимация которая сделана при помощи таких модулей как manim и numpy 🔥

Такая на первый взгляд довольно сложная анимация занимает всего 15 строк кода 🤯

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

С 6-ю по 7-ю строку мы создаём и задаём параметры кругу, красим его в розовый и задаём прозрачность 0.5.

Далее с 9-ю по 10-ю строку мы так же создаём фигуру, но на этот раз квадрат и задаём ему вращение с помощью числа пи поделенное на 4.

И в самом конце выводим на экран квадрат, заменяем квадрат на круг, а затем убираем квадрат. Всё очень просто :3


Стоит отметить, что manim это та библиотека, с помощью которой можно создавать математические анимации, а numpy имеет в себе математические функции, поэтому связка этих двух модулей не плохая идея 🤔

Ознакомиться с кодом вы можете здесь :)
🔥42👍16😢3🤯21🤔1😱1
🐍 Совет по Python №9.

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

По умолчанию у dataclass есть методы init, repr и eq, поэтому их не нужно реализовывать самостоятельно.

На первом примере идентификаторы title и author используются несколько раз. Реальный класс же будет ещё содержать переопределенные методы eq и repr.

На втором примере мы автоматически получаем класс, с реализованными методами init, repr, и eq. Кроме того, это будет обычный класс и вы можете наследоваться от него.

Чем полезен dataclass?

Конструкции dataclass позволяют писать шаблонный код и упрощают процесс создания классов.

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

Документация и примеры кода здесь :3
👍30🔥1😱1
phonenumbers — это небольшая библиотека, для получения информации о номере телефона.

Что она умеет?

Данная библиотека имеет возможность узнать геолокацию номера телефона (страна, город), абонентом какого оператора он является, пройти проверку на валидацию и другое.

Сверху приведены два примера по валидации данных, но они возвращают разные значения

Почему так происходит?

Причина в том, что метод is_possible_number() быстро угадывает действительность телефонного номера, проверяя длину анализируемого номера, в то время как метод is_valid_number() выполняет полную проверку, проверяя длину, префикс телефонного номера и регион.

При итерации по большому списку телефонных номеров использование phonenumbers.is_possible_number() даст более быстрые результаты по сравнению с phonenumbers.is_valid_number() . Но, как мы видим здесь, эти результаты не всегда правильны. Так что используйте на свой страх и риск.

Ставится командой pip install phonenumbers
Краткая документация(с pypi) и примеры кода здесь.
👍47🔥5😱2💯1
captcha — простая библиотека, которая генерирует заданную вами капчу!

Что умеет библиотека captcha?

Несомненно, библиотека слишком маленькая, но она всё же она имеет полезные функции, например: генерировать капчу ввиде фотографии(как показано на примере выше) и генерировать аудио капчу (аудиофайл).

Так же можно изменять шрифты на выбранные вами, что может быть полезно если tesseract(или другое приспособление для распознавания текста с фотографии) распознает текст. Если поиграться с различным настройками, может выйти что то годное 🤔

Результат примера здесь.

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

Стоит отметить, что не нужно называть файл к примеру captcha.py , ведь тогда Python запутается и выдаст ошибку :(

Ставится командой pip install captcha
Краткая документация(с pypi) и примеры кода здесь!
👍28🔥3🤯2😱2
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