My Python
2 subscribers
136 photos
3 videos
1 file
144 links
Download Telegram
Forwarded from Python 🇺🇦
RegEx: sub

Функція sub() замінює співпадіння текстом на твій вибір. У першому прикладі прогалини замінюються на 9. За потреби ти можеш контролювати кількість замін, вказавши параметр count. У другому прикладі прогалини замінюються лише двічі.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
re.findall

Функція findall() повертає список, що містить усі збіги. Список містить співпадіння у тому порядку, в якому вони були знайдені. Якщо збігів не знайдено, повертається порожній список.

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

При виконанні інструкції assert з логічним виразом, результат якого дорівнює True, нічого не станеться.

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

Винятки AssertionError призначені скоріше для налагодження. При написанні програм на етапі розробки ми можемо бачити, що робимо щось не так (наприклад, передали в метод некоректне значення).

Також не потрібно, наприклад, обробляти введення користувача і намагатися обробити виключення AssertionError блоком try-except.

Якщо у вашому коді буде дуже багато assert'ів, то це торкнеться і продуктивності програми.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
eq та hash

Python автоматично викликає метод eq класу, коли ти використовуєш оператор == для порівняння екземплярів класу. Хеш об'єкта - це ціле число, що представляє значення об'єкта, і його можна отримати за допомогою функції hash(), якщо об'єкт можна хешувати.

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Визначення літеральних типів

Коли нам знадобиться визначити з отриманого рядка літеральний тип (рядки, числа, списки, кортежі, словники, логічні значення та None), ми можемо скористатися функцією literal_eval() із модуля ast.

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

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

Метод call дозволяє писати класи, у яких екземпляри поводяться як функції і можуть викликатись як функції.

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
list.reverse

list.reverse – це вбудований метод, який відображає об'єкти списку у зворотному порядку. Коли замість списку використовується щось, крім списку, повертається помилка AttributeError. Метод корисний для перевірки, чи є список паліндром.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Іменовані кортежі

Кортежі tuple, по суті, є незмінними списками. Структура даних є зручною, але ми можемо отримувати дані, використовуючи тільки числові індекси.

Немає можливості дати імена окремим елементам, збереженим у кортежі. Це може вплинути на читання коду. І в такому випадку використовують іменовані кортежі namedtuple з collections.

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Прогрес виконання програми

Індикатори прогресу додають наочності у скриптах, які виконують якісь функції, що потребують часу для виконання. Модуль tqdm є простим та лаконічним варіантом.

Звичний range можна замінити trange для візуалізації прогресу. А для ітерації за якоюсь послідовністю, досить просто передати її у функцію tqdm. Також модуль добре себе зарекомендував і у Jupyter Notebook.

До речі, цікавий факт - назва tqdm походить від арабського слова "taqaddum" (تقدّم), яке означає "прогрес," а також це ще й скорочення від "я тебе сильно люблю" іспанською (te quiero demasiado).

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Гарні таблиці в терміналі

PrettyTable - це проста бібліотека, призначена для швидкого та легкого представлення табличних даних у вигляді ASCII. Модуль можна встановити в звичний спосіб через pip.

Для створення таблиць та роботи з ними використовується клас PrettyTable із цього модуля. Задати назву для стовпців можна за допомогою атрибута fields_name. Рядки до таблиці додаються шляхом виклику методу add_row.

Більш того, модуль prettytable дозволяє регулювати різні параметри, сортувати дані, працювати з html, а також взаємодіяти з csv і sql таблицями. Отже можливостей у цього модуля достатньо.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Перевіряємо швидкість інтернету

Кожен хоч раз перевіряв швидкість свого інтернету на Speedtest. А у них, виявляється, є не лише сайт та додатки, а й пакет на Python для цієї справи.

У об'єкта класу Speedtest методи download() та upload() видають відповідно швидкість скачування та завантаження даних.

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

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

Метод splitlines() розбиває рядок на список. Розбиття виконується на розривах рядків. За бажанням можна вказати, чи слід включати розриви рядків (True) чи ні (False). Значення за замовчуванням – False.

#practice // Python 🇺🇦
Forwarded from Python RU
🖥 Inline SQL

Простой встроенный модуль для запуска встроенного SQL для Python.

pip install inline-sql

➡️ Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python RU
➡️ Быстро и просто разворачиваем приложение на Selenium Python в Docker

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

Но у некоторых может возникнуть проблема с развертыванием кода, использующего этот инструмент, на сервере. На самом деле, все очень просто, если вы знакомы с Docker.

➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python RU
💻 Извлечение таблиц из pdf с помощью camelot

На сайте Newtechaudit.ru описывались различные способы извлечения таблиц с данными из pdf-файлов в excel. В частности, с помощью python-библиотеки camelot (как здесь).

Рассмотрим расширенные возможности camelot, позволяющие распознать большую таблицу со сложной структурой. А также покажем, как использовать библиотеку PyMuPDF в качестве бэкэнда для конвертации pdf в png.

Следует учесть, что сamelot может распознавать только так называемые text-based pdf файлы. То есть те, внутри которых можно выделять текст. Если pdf является сканом, то camelot не сработает.

➡️ Читать дальше
➡️ Github

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python 🇺🇦
Легкий веб-фреймворк

Bottle – це швидкий, простий та легкий мікро-веб-фреймворк WSGI для Python. Він розповсюджується як єдиний файловий модуль і не має жодних залежностей, крім стандартної бібліотеки Python.

Незважаючи на свою мінімалістичність, Bottle надає досить широкі можливості, яких на 100% вистачає для малих та середніх проектів. Ось список основних можливостей: routing, templates, POST-routing, обробка форм, cookies та сервер.

Після запуску подібного прикладу можете перейти в браузері за адресою localhost:5000/hello/world та подивитися на результат, отриманий з п'яти рядків коду.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
NumPy: Пошук у масиві

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Сортування списків

У Python є два вбудовані способи для сортування списків – функція sorted() та метод list.sort(). Результат в обох випадках однаковий, але все ж таки є нюанси.

Функція sorted() приймає на вхід аргумент у вигляді списку, а повертає вже новий, відсортований список. При цьому вихідний список не змінюється.

Метод sort(), в свою чергу, застосовується до списку, безпосередньо змінює його і нічого не повертає.

#practice // Python 🇺🇦
Forwarded from Python RU
🖥 Лайфхаки Python: сэкономить память и ускорить выполнение программы

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

TL;DR Используйте списковые включения (list comprehensions), генераторные выражения (generator expressions) и генераторы везде, где только можно. Это поможет сэкономить память и время выполнения программы.

➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python 🇺🇦
Отримуємо календар

У модулі calendar є функція month(), яка поверне календар зазначеного місяця у вигляді рядка, як показано у прикладі. А функція calendar() видасть цілий рік.

Якщо рядки не влаштовують, то в модулі є багато методів для отримання різних ітераторів. А ще там можна навіть одержати календар у вигляді HTML.

До речі, модуль вбудований, окремо його встановлювати не потрібно.

#practice // Python 🇺🇦