Pythoner
7.21K subscribers
861 photos
27 videos
4 files
655 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🐍Telethon

Telethon — это библиотека Python, которая позволяет вам взаимодействовать с API Telegram.
Вы можете отправлять, получать или ждать новых сообщений Telegram внутри вашего Python-приложения. Вы также можете отправлять файлы контакту или группе контактов.

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

*Для работы этого кода вам нужно только получить ID и хэш Telegram API (что можно сделать за несколько минут).
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5🔥1
🐍Генераторные выражения и списковые включения.

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

🔵Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.

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

А если же значения понадобятся еще не скоро или неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
🖥Нахождение наиболее частых элементов списка.

Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.

Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥42
⁉️ А вы знали что для разных людей можно делать разные меню команд в Телеграм ботах?

👀 Не поняли? Сейчас объясню.
Допустим у нас в боте есть 4 команды:
/start, /info, /admin и /send.
старт должен быть доступен всем пользователям. Инфо только в группах, админ для админов чатов, а сенд для админов Бота (определенные пользователи). Все это можно реализовать с помощью CommandScope!

🌐 Чтобы такое сделать, надо когда задаёте команды через bot.set_my_commands - передавать нужный скоуп. дока тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1
📈Altair

Библиотека Altair - это инструмент для визуализации данных в Python, который основан на библиотеке Vega и предоставляет простой интерфейс для создания красивых и информативных графиков.

В примере на фото выше мы создаем набор данных с двумя столбцами 'x' и 'y', затем создаем точечный график с помощью Altair, используя эти столбцы в качестве осей x и y. Метод mark_circle(size=100) указывает, что на графике мы будем использовать круглые маркеры определенного размера для каждой точки.

Наконец, метод chart.show() отображает созданный точечный график.

Это простой пример, но с помощью Altair можно создавать более сложные и интересные визуализации данных, такие как линейные графики, столбчатые диаграммы или гистограммы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🤷‍♀1🔥1
👍11😁72🤣2
📷Разбиваем видео на n кол-во изображений

Для разбиения видео на n количество изображений вам понадобится использовать библиотеку OpenCV в Python.

В этом примере функция video_to_images принимает путь к видео (video_path) и количество желаемых изображений (frames_count). Она открывает видеофайл, читает каждый кадр и сохраняет каждый "шаг" кадров как отдельное изображение. Затем функция прекращает обработку, когда необходимое количество изображений сохранено.

Обратите внимание, что код использует целочисленное деление // и целочисленное преобразование int() для обеспечения, чтобы каждое изображение было сохранено через примерно одинаковое количество кадров, чтобы равномерно распределить их по времени видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥1
🐍Усыпляем программу

Иногда возникает необходимость остановить выполнение программы, чтобы можно было выполнить несколько других операций, или просто из-за требуемой утилиты. В такой ситуации может пригодиться функция sleep(), которая обеспечивает точный и гибкий способ остановки потока кода на любой период времени.

В нашем примере время начала и время окончания будут напечатаны с задержкой в 6 секунд.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
🖥Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный ниже пример кода, чтобы понять, как это работает.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🤨2🔥1👾1
🤣24👍10😁31👏1
🐍Asyncio

Asyncio - это библиотека в Python, которая предоставляет возможность написания асинхронного кода с использованием сопрограмм (coroutines) и ивент-лупа (event loop). С ее помощью можно создавать эффективные и отзывчивые асинхронные приложения, которые могут обрабатывать множество одновременных задач без блокировки потоков.

Asyncio позволяет выполнять несколько задач параллельно и управлять их выполнением, использовать механизмы ожидания (await) для управления асинхронными операциями, а также упрощает обработку исключений в асинхронном коде.

В примере на фото выше мы создаем две асинхронные задачи с помощью функции async_function, которая задерживается на определенное время и выводит сообщение. Затем мы запускаем обе задачи параллельно в функции main с помощью asyncio.create_task, дожидаемся их выполнения с помощью await и запускаем весь код с помощью asyncio.run(main()). В результате мы увидим вывод сообщений "Hello" через 1 секунду и "Asyncio" через 2 секунды.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥3
*⃣ Как хранить токены и пароли в программах на 🐍 Python?

🔍 У новичков часто возникает вопрос - где хранить секретные данные? Нет, можно, конечно, прямо в коде, но лучше так не делать. Делюсь короткой статьей с основными способами хранения токенов и прочих секретных данных 


➡️ u.habr.com/dSPXv 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6👍32🔥1
Ищем опечатки

Пакет spellchecker позволяет отыскать ошибки в тексте, а также может предложить варианты исправлений. В примере проходимся по списку из двух слов, из которых одно ('therre') написано с опечаткой. Функция correction замечает это и предлагает одно самое вероятное исправление, а candidates — несколько.

Библиотека поддерживает шесть языков.

Документацию можно найти здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
😁177👍4
🐍Преобразование изменяемых данных в неизменяемые

Изменяемые данные (например, словари или списки) — это структуры, к которым могут быть добавлены новые значения.

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥1
Forwarded from Книжный Python
10 тяжёлых истин о работе программиста, про которые никто не предупреждает❗️

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

📖Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥2
🐍Snowballstemmer

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

Эта библиотека реализует алгоритм Портера, который является одним из наиболее известных алгоритмов стемминга. Snowballstemmer поддерживает алгоритмы стемминга для 15 языков, включая русский.

*Стемминг применяется в поисковых системах для расширения поискового запроса пользователя, является частью процесса нормализации текста.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
🐍В каком случае лучше использовать while , чем for?

➡️Использование цикла while в Python целесообразно в случае, когда число итераций заранее неизвестно или зависит от условий во время выполнения программы. Например, когда нужно повторять определенные действия до тех пор, пока не будет выполнено определенное условие.

➡️С другой стороны, цикл for удобно использовать, когда известно количество итераций, например, когда нужно перебрать все элементы в списке или выполнить действия определенное количество раз.

➡️Таким образом, в исходном коде лучше использовать цикл while, когда требуется гибкость в управлении итерациями, а цикл for - для ситуаций, когда количество итераций известно заранее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥1😁1