My Python
2 subscribers
136 photos
3 videos
1 file
144 links
Download Telegram
Forwarded from Python 🇺🇦
Стек типу LIFO

Стек – це лінійна структура даних. У ній елементи зберігаються як «останній прийшов — перший вийшов» (LIFO). Це означає, що елементи зберігаються у порядку надходження.

👀 Відео, котре допоможе розібратися зі стеком.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Перекладаємо Python на людську мову

Знайшов цікавий пакет humanize, який може переводити числа і дати в текст, що легко читається. Тобто всі костилі для таких завдань відразу замінюються буквально одним рядком.

Наприклад, зі складного об'єкта timedelta можна отримати "2 дні, 1 годину і 33.12 секунд" або "5.00 x 10²" з числа 500. Більше прикладів можете подивитися на прикріпленій картинці.

Що ще крутіше, окрім англійської, пакет підтримує багато інших мов, включаючи українську. Почитайте їхню документацію, там багато цікавих функцій.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Обробка винятків

Python має безліч вбудованих винятків, що виникають, коли твоя програма стикається з помилкою.

👀 Відео, де автор демонструє, як можна обробляти винятки. Розглянуті конструкції try-except, try-finally та try-except-finally.

#practice // Python 🇺🇦
Forwarded from Технотренды
🐍 Необычный Python в обычных библиотеках

Специалист в Data Science из Amazon буквально прочитал код самых распространённых библиотек Python. В этом материале он делится секретами работы с Python, о которых узнал из этих библиотек. За подробностями приглашаем под кат к старту нашего флагманского курса по Data Science:

Читать статью на сайте

#Python
Forwarded from Python 🇺🇦
random.sample

Метод sample() повертає список елементів певної довжини, вибраних із послідовності. Послідовністю може бути список, кортеж, рядок або множина. Параметр k відповідає за розмір списку, що повертається.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Друзі, нагадуємо про чат для ком'юніті Python ентузіастів!

Додавайтесь, якщо у вас виникають запитання, або ж ви хочете поділитися своїми думками стосовно тої чи іншої теми.

Давайте спілкуватися!
Forwarded from Python 🇺🇦
NumPy: Транслювання масивів

Для масивів однакового розміру бінарні операції виконуються поелементно. Транслювання дозволяє виконувати ці типи бінарних операцій над масивами різних розмірів.

👀 Відео, де автор демонструє транслювання масивів.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Редагуємо відео

Пакет moviepy дозволяє обрізати та склеювати відео, додавати відеоефекти й редагувати звук.

Розібратися з пакетом не складно, базове використання показано на зображенні. У прикладі ми відкриваємо два відео, склеюємо в одне, обрізаємо отриманий кліп, зменшуємо гучність звуку і в кінці зберігаємо результат.

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

Такий пакет корисний у випадках, коли потрібно обробити дуже багато відео за одним і тим же принципом.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
bool

Метод bool() реалізує вбудовану функцію bool(). Коли ти викликаєш bool(x), Python намагається викликати x.bool(). Якщо значення, що повертається, не є логічним, Python видає помилку TypeError.

👀 Відео, котре допоможе розібратися з bool.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Завантажуємо вебсайти повністю

Максимально простий, але потужний пакет pywebcopy допоможе вам клонувати окремі веб-сторінки або навіть цілі сайти.

Функція save_webpage завантажує сторінку за вказаним посиланням, в аргументи також можна передати шлях, куди зберегти результат.

А ось save_website дає можливість завантажити весь сайт рекурсивно. Наприклад, якщо сайт є блогом, то скрипт скаче всі статті, які є на сайті.

Але тут треба бути акуратнішим, подібне рекурсивне завантаження може надіслати багато запитів до сервера і сильно навантажити його.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Спрощена робота з JSON

Є один цікавий пакет JMESpath, який дозволяє декларативно вказати, як витягувати елементи з документа JSON.

Основні приклади використання показані на зображенні. Метод search приймає патерн, яким потрібно витягти дані, і навіть словник (схожий на JSON).

Взагалі можливостей у пакета достатньо, тому він гідний вивчення та застосування у проектах. Докладніше можна почитати в документації.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Отримуємо дані про систему

Кросплатформова бібліотека psutil дозволяє отримувати інформацію про процесор, пам'ять, диск, мережу, датчики і запущені процеси в системі. Приклади базового використання показані на зображенні.

Якщо говорити про практичне застосування, psutil корисний в основному для моніторингу системи, обмеження ресурсів процесів та управління запущеними процесами.

Крім звичних Windows, MacOS та Linux, бібліотека також підтримує системи FreeBSD, OpenBSD, NetBSD, Sun Solaris та AIX.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
infinity

Взагалі float є дуже цікавим типом даних і не перестає дивувати своїми особливостями. Про значення Not a Number ми вже писали раніше, а сьогодні поговоримо про infinity.

Рядкові літерали 'inf' та 'infinity' можна конвертувати в float, і в результаті виходить значення нескінченності. Для негативної "нескінченності" необхідно поставити знак мінуса перед словом.

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Надсилаємо універсальні повідомлення

Вашій увазі цікавий пакет notifiers, який дозволяє відправляти повідомлення на пошту через Telegram бота, в Слек і ще багато куди. Всього доступно 16 провайдерів, детальніше про них у документації.

У функцію get_notifier передаємо назву провайдера у вигляді рядка та отримуємо об'єкт, з яким можна працювати. Надіслати повідомлення можна за допомогою універсального методу notify.

Якщо не впевнені, які аргументи потрібно передати для надсилання повідомлення, то можете подивитися їх через атрибут required у створеного об'єкта.

Наприклад, для Telegram потрібно передати токен бота, айді чату і саме повідомлення. У випадку з поштою необхідно вказати логін, пароль, адресата та повідомлення.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Використання zip

Функція zip() приймає елементи, об'єднує їх в кортеж і повертає його. Якщо передані ітератори мають різну довжину, ітератор із найменшою кількістю елементів визначає довжину нового ітератора.

👀 Відео, де автор докладно описує роботу цієї функції на конкретних прикладах.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Відловлюємо помилки за допомогою assert

Інструкція assert приймає логічний вираз та необов'язкове повідомлення. Вона використовується для перевірки типів, значень аргументу та виведення функції, а також для налагодження, оскільки зупиняє програму у разі помилки.

Якщо виконати інструкцію assert з логічним виразом, результат якого дорівнює True, нічого не станеться. Але у випадку з False буде згенеровано виняток AssertionError.

Однак не потрібно намагатися обробити виняток AssertionError блоком try-except. У такому разі assert втрачає свій сенс.

У прикладі ми перевірили, чи є переданий аргумент числовим типом даних. Якщо ні, то буде викликано виняток та виведено вказане повідомлення.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Розділюємо цілі числа

Важко візуально розрізнити цілі числа подібні 10000000 та 100000000. Використовувати коми, як в англійській мові, не вийде.

Але Python дозволяє використовувати нижнє підкреслення як роздільник для покращення читабельності.

Наприклад, 1_000_000 інтерпретуватиметься як ціле число 1000000.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Дізнаємося кодування тексту

Думаю, у всіх були ситуації, коли ви відкрили файл або отримали відповідь від сервера, а всередині виявлявся набір дивних символів у незрозумілому кодуванні.

Пакет chardet був створений для роботи з кодуванням. Його метод detect видає передбачуване кодування з точністю від 0 до 1.

У прикладі на картинці ми отримали відповідь на запит до сервера, взяли його вміст і перевірили кодування через цей метод.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
SciPy: Випукла оболонка

Випукла оболонка містить у собі набір точок та діє як межа кластера, яка допомагає визначити всі точки всередині кластера. За допомогою методу ConvexHull() ти можеш створити випуклу оболонку.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Тимчасові файли

У стандартній бібліотеці Python є модуль tempfile, який містить класи та методи для коректної роботи з тимчасовими файлами та директоріями.

Функція TemporaryFile створює тимчасовий файл у системній директорії та повертає файлоподібний об'єкт.

Створений тимчасовий файл буде видалено автоматично після закриття файлу або при виході з контекстного менеджера.

Також інші процеси та програми не зможуть отримати доступ до цього тимчасового файлу.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Підключаємося до сервера по ssh

Пакет paramiko дозволяє встановлювати з'єднання з віддаленими машинами за протоколом SSH2 і робити там ті самі операції, якби ви підключалися через, наприклад, утиліту ssh на лінуксі.

Використовувати модуль досить просто, приклад основних методів на зображенні вище. До речі, цікавий факт, Paramiko - це поєднання слів "параноїк" та "друг" мовою есперанто.

Встановлюється пакет звичним чином через пакетний менеджер pip. Документацію можна переглянути тут.

#practice // Python 🇺🇦