Forwarded from Python 🇺🇦
Прогрес виконання програми
Індикатори прогресу додають наочності у скриптах, які виконують якісь функції, що потребують часу для виконання. Модуль
Звичний
До речі, цікавий факт - назва
#practice // Python 🇺🇦
Індикатори прогресу додають наочності у скриптах, які виконують якісь функції, що потребують часу для виконання. Модуль
tqdm є простим та лаконічним варіантом.Звичний
range можна замінити trange для візуалізації прогресу. А для ітерації за якоюсь послідовністю, досить просто передати її у функцію tqdm. Також модуль добре себе зарекомендував і у Jupyter Notebook.До речі, цікавий факт - назва
tqdm походить від арабського слова "taqaddum" (تقدّم), яке означає "прогрес," а також це ще й скорочення від "я тебе сильно люблю" іспанською (te quiero demasiado).#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Гарні таблиці в терміналі
PrettyTable - це проста бібліотека, призначена для швидкого та легкого представлення табличних даних у вигляді ASCII. Модуль можна встановити в звичний спосіб через
Для створення таблиць та роботи з ними використовується клас
Більш того, модуль
#practice // Python 🇺🇦
PrettyTable - це проста бібліотека, призначена для швидкого та легкого представлення табличних даних у вигляді ASCII. Модуль можна встановити в звичний спосіб через
pip.Для створення таблиць та роботи з ними використовується клас
PrettyTable із цього модуля. Задати назву для стовпців можна за допомогою атрибута fields_name. Рядки до таблиці додаються шляхом виклику методу add_row.Більш того, модуль
prettytable дозволяє регулювати різні параметри, сортувати дані, працювати з html, а також взаємодіяти з csv і sql таблицями. Отже можливостей у цього модуля достатньо.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Перевіряємо швидкість інтернету
Кожен хоч раз перевіряв швидкість свого інтернету на Speedtest. А у них, виявляється, є не лише сайт та додатки, а й пакет на Python для цієї справи.
У об'єкта класу
Методи віддають результат у байтах, тому для наочності у прикладі усі дані переведено в мегабайти при виведенні.
#practice // Python 🇺🇦
Кожен хоч раз перевіряв швидкість свого інтернету на Speedtest. А у них, виявляється, є не лише сайт та додатки, а й пакет на Python для цієї справи.
У об'єкта класу
Speedtest методи download() та upload() видають відповідно швидкість скачування та завантаження даних.Методи віддають результат у байтах, тому для наочності у прикладі усі дані переведено в мегабайти при виведенні.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Легкий веб-фреймворк
Незважаючи на свою мінімалістичність,
Після запуску подібного прикладу можете перейти в браузері за адресою
#practice // Python 🇺🇦
Bottle – це швидкий, простий та легкий мікро-веб-фреймворк WSGI для Python. Він розповсюджується як єдиний файловий модуль і не має жодних залежностей, крім стандартної бібліотеки Python.Незважаючи на свою мінімалістичність,
Bottle надає досить широкі можливості, яких на 100% вистачає для малих та середніх проектів. Ось список основних можливостей: routing, templates, POST-routing, обробка форм, cookies та сервер.Після запуску подібного прикладу можете перейти в браузері за адресою
localhost:5000/hello/world та подивитися на результат, отриманий з п'яти рядків коду.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Сортування списків
У Python є два вбудовані способи для сортування списків – функція
Функція
Метод
#practice // Python 🇺🇦
У Python є два вбудовані способи для сортування списків – функція
sorted() та метод list.sort(). Результат в обох випадках однаковий, але все ж таки є нюанси.Функція
sorted() приймає на вхід аргумент у вигляді списку, а повертає вже новий, відсортований список. При цьому вихідний список не змінюється.Метод
sort(), в свою чергу, застосовується до списку, безпосередньо змінює його і нічого не повертає.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Отримуємо календар
У модулі
Якщо рядки не влаштовують, то в модулі є багато методів для отримання різних ітераторів. А ще там можна навіть одержати календар у вигляді HTML.
До речі, модуль вбудований, окремо його встановлювати не потрібно.
#practice // Python 🇺🇦
У модулі
calendar є функція month(), яка поверне календар зазначеного місяця у вигляді рядка, як показано у прикладі. А функція calendar() видасть цілий рік.Якщо рядки не влаштовують, то в модулі є багато методів для отримання різних ітераторів. А ще там можна навіть одержати календар у вигляді HTML.
До речі, модуль вбудований, окремо його встановлювати не потрібно.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
ООП: композиція
Композиція - це відношення, при якому об'єкти одного класу пов'язані з об'єктами іншого. Такий спосіб організації взаємодії між класами називається асоціацією.
Зазвичай, у такому випадку об'єкт одного з класів (у прикладі вище це
Асоційовані об'єкти часто можуть циклічно посилатися один на одного, що ламає стандартний механізм збирання сміття.
У такому випадку необхідно використовувати слабкі посилання з модуля
#practice // Python 🇺🇦
Композиція - це відношення, при якому об'єкти одного класу пов'язані з об'єктами іншого. Такий спосіб організації взаємодії між класами називається асоціацією.
Зазвичай, у такому випадку об'єкт одного з класів (у прикладі вище це
Salary) є полем іншого (Employee). Складного тут, як бачите, нічого немає.Асоційовані об'єкти часто можуть циклічно посилатися один на одного, що ламає стандартний механізм збирання сміття.
У такому випадку необхідно використовувати слабкі посилання з модуля
weakref, про який поговоримо пізніше.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Обробка винятків
Винятки - це тип даних, який потрібен для того, щоб повідомляти нам про помилки.
Існує базовий виняток
У блоці
Варто врахувати, що ми можемо робити безліч вкладених блоків.
Грамотним способом є виловлювати лише ті винятки, на які ми очікуємо.
#practice // Python 🇺🇦
Винятки - це тип даних, який потрібен для того, щоб повідомляти нам про помилки.
Існує базовий виняток
BaseException від якого успадковуються всі інші винятки.У блоці
try ми виконуємо інструкцію, яка може спричинити виняток, а в блоці except ми ловимо помилки і робимо свої операції.Варто врахувати, що ми можемо робити безліч вкладених блоків.
Грамотним способом є виловлювати лише ті винятки, на які ми очікуємо.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Точка входу
У деяких мовах програмування є функції
Як варіант, багато хто пишуть основну логіку програми в звичайну функцію
Змінна
Таким чином, програма коректно запрацює тільки якщо запустити її напряму. Якщо імпортувати її як модуль до іншого скрипту, то умова не спрацює.
#practice // Python 🇺🇦
У деяких мовах програмування є функції
main(), з яких починається виконання програми. Але в Python весь код виконується рядково.Як варіант, багато хто пишуть основну логіку програми в звичайну функцію
main(), а викликають її лише за умови if __name__ == '__main__'. Тут варто пояснити окремо про те, що таке __name__.Змінна
__name__ — це спеціальна змінна, яка дорівнює '__main__', тільки якщо файл запускається як основна програма. А при імпорті у якості модуля виставляється рівною імені модуля.Таким чином, програма коректно запрацює тільки якщо запустити її напряму. Якщо імпортувати її як модуль до іншого скрипту, то умова не спрацює.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Використання комплексних чисел у Python
Нікого вже не здивувати такими вбудованими типами, як наприклад
У Python комплексні числа представлені у вигляді
Комплексне число легко можна перетворити на рядок за допомогою функції
Хоча
#practice // Python 🇺🇦
Нікого вже не здивувати такими вбудованими типами, як наприклад
int, float, та подібними. Але крім них у Python існує ще один досить цікавий тип, а саме complex.У Python комплексні числа представлені у вигляді
x + iy. А точніше кажучи, замість літери i тут використовується буква j, щоб уникнути деякої плутанини, оскільки i найчастіше зайнята під цикли. Python перетворює реальні числа x і y (будь то int або float) на комплексні за допомогою функції complex(x,y).Комплексне число легко можна перетворити на рядок за допомогою функції
str або порахувати його модуль за допомогою функції abs, а також для доступу до його реальної або уявної частин можна скористатися методами real і imag.Хоча
complex є вбудованим типом, для більш зручної роботи з комплексними операціями рекомендується імпортувати модуль cmath.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Колекція slots
Python використовує
👀 Відео, котре допоможе розібратися із
#practice // Python 🇺🇦
Python використовує
dict для зберігання атрибутів екземпляра об'єкта. Це корисно, коли в тебе є довільна кількість атрибутів. У невеликих класах це вже проблема – dict витрачає багато оперативної пам'яті. Python не може просто так виділити статичний обсяг пам'яті для зберігання всіх атрибутів. Для цього потрібно використати slots. Ти відразу вказуєш на всі очікувані атрибути. Таким чином, можна знизити використання оперативної пам'яті майже на 40-50 відсотків. 👀 Відео, котре допоможе розібратися із
slots.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Decimal та Fraction
Через те, що дробові числа з плаваючою точкою зберігаються в двійковому вигляді, ми зазвичай працюємо з приблизними значеннями, як у першому варіанті на скрині.
Для отримання більш точних результатів можна використовувати клас
У такому разі, для ідеальних обчислень краще використовувати клас
#practice // Python 🇺🇦
Через те, що дробові числа з плаваючою точкою зберігаються в двійковому вигляді, ми зазвичай працюємо з приблизними значеннями, як у першому варіанті на скрині.
Для отримання більш точних результатів можна використовувати клас
Decimal, але і його може не вистачити в деяких випадках.У такому разі, для ідеальних обчислень краще використовувати клас
Fraction, бо він працює з числами у вигляді раціональних дробів.#practice // Python 🇺🇦