Погані звички, які прийшли від купи старих гайдів 🫠
Одна з причин, чому я завів цей канал, це боротьба з ними 😅
Так от,
Лопатою я тут назвавкопати ями працювати з файлами
Якщо треба зробити це швидко і небагато — ви візьмете лопату 😉
Записати текст у файл?
Зчитати текст з файлу? Тю,
Ви колись бачили щось простіше?)
Звісно, ніхто не каже викидати😉 )
Спробувати самостійно | Підписатись
Одна з причин, чому я завів цей канал, це боротьба з ними 😅
Так от,
with open це прекрасно, але навіщо вам трактор, якщо вам треба лопата?)Лопатою я тут назвав
Path — дуже простий спосіб Якщо треба зробити це швидко і небагато — ви візьмете лопату 😉
Записати текст у файл?
file.write_textЗчитати текст з файлу? Тю,
file.read_textВи колись бачили щось простіше?)
Звісно, ніхто не каже викидати
open, просто це більш гнучкий інструмент, який буде корисним у складніших операціях, але з яким треба вміти поводитись (трактором от можна й танк тягнути Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍3🔥1
Нова рубрика — задачки по Пайтону! 🔥
Я уже раніше анонсував її, і вирішив, що не варто зволікати)
Для початку, вибрав доволі стандартну задачку, але, надіюсь, вам сподобається 😊
Задача #1:
Потрібно написати функцію
Послідовність починається з двох одиниць, і продовжується сумою двох попередніх елементів, тобто: 1, 1, 2, 3, 5, 8, 13, 21 і тд
Ваші відповіді надсилайте у бот @python_kor0p_bot
Переможці:
1. Код, що виконується найшвидше
2. Код, що сподобається підписникам у голосуванні
Винагорода (на вибір):
- 2 години менторства від мене
- 100 грн
Як буде перевірятись коректність та швидкодія — описую у окремому JupyterLite
Відповіді приймаються до 9 червня 23:59
За мною залишається право задавати питання по вашій реалізації, щоб впевнитись, що код не крадений (ну або не від ШІ😅 )
10 червня буде проведено опитування серед підписників за найцікавішу відповідь, щоб визначити переможця #2
11 червня обидва переможці отримають свою винагороду, і їхні відповіді будуть опубліковані на каналі
Також, я опублікую свій варіант розв'язку, якщо вам цікаво)
Дуже чекаю ваших варіантів у боті☺️
Я уже раніше анонсував її, і вирішив, що не варто зволікати)
Для початку, вибрав доволі стандартну задачку, але, надіюсь, вам сподобається 😊
Задача #1:
Потрібно написати функцію
fib, що повертатиме н-ний елемент послідовності ФібоначчіПослідовність починається з двох одиниць, і продовжується сумою двох попередніх елементів, тобто: 1, 1, 2, 3, 5, 8, 13, 21 і тд
Ваші відповіді надсилайте у бот @python_kor0p_bot
Переможці:
1. Код, що виконується найшвидше
2. Код, що сподобається підписникам у голосуванні
Винагорода (на вибір):
- 2 години менторства від мене
- 100 грн
Як буде перевірятись коректність та швидкодія — описую у окремому JupyterLite
Відповіді приймаються до 9 червня 23:59
За мною залишається право задавати питання по вашій реалізації, щоб впевнитись, що код не крадений (ну або не від ШІ
10 червня буде проведено опитування серед підписників за найцікавішу відповідь, щоб визначити переможця #2
11 червня обидва переможці отримають свою винагороду, і їхні відповіді будуть опубліковані на каналі
Також, я опублікую свій варіант розв'язку, якщо вам цікаво)
Дуже чекаю ваших варіантів у боті
Please open Telegram to view this post
VIEW IN TELEGRAM
kor0p.github.io
Jupyter Notebook - Notebooks
WASM powered Jupyter running in the browser.
❤2🔥2
Сьогодні будемо обирати найцікавіший варіант вирішення 😎
Голосування (пост вище) буде відкрите до 23:59
Реалізації можна глянути ось тут:
- @pvlvld (від @pvlvld)
- @olsinika (від @olsinika)
- @krond (від @krond)
- hidden (від Hidden)
Як і обіцяв, завтра опублікую і свій варіант
P.S. він б не переміг😭
Усім дякую за участь, було цікаво слідкувати за потоком думок і реалізацій
У декого було декілька варіантів, і вони будуть опубліковані завтра (за згоди автора, звісно)
Голосування (пост вище) буде відкрите до 23:59
Реалізації можна глянути ось тут:
- @pvlvld (від @pvlvld)
- @olsinika (від @olsinika)
- @krond (від @krond)
- hidden (від Hidden)
Як і обіцяв, завтра опублікую і свій варіант
P.S. він б не переміг
Усім дякую за участь, було цікаво слідкувати за потоком думок і реалізацій
У декого було декілька варіантів, і вони будуть опубліковані завтра (за згоди автора, звісно)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2😎1 1
Python просто | з Коропом
Яка реалізація вам сподобалась найбільше?
Отже, переможці першого змагання:
1. @krond (від @krond) за найшвидший результат (0.00148с)
2. hidden (від Hidden), за якого проголосувало найбільше людей (61%)
Мої варіанти:
- звичайний (на фото — саме він)
- математичний
Додаткові варіанти від @krond:
- перший
- другий
- третій
А тепер коротенька історія:
В універу у нас були командні проєкти, до яких доєднювали менторів — людей, які працювали в айті і могли дати непідробні знання
Але на перший семестр першого курсу команда в нас не склалась якось...
Ніхто не хотів нічого робити, та й ментор не дуже за нами слідкував
Але на кінець семестру на нього трохи натиснули, і він почав нас ганяти по Пайтону (бо проєкт мав бути саме на ньому), і задача була саме написати функцію для послідовності Фібоначчі
Скільки часу ми тоді не гуглили, скільки б не думали (а я уже тоді вважав себе супер-крутим знавцем Пайтону, бо пройшов 2-3 безкоштовні курси, хєх) — ми не могли додуматись до того рішення, яке від нас очікував ментор
Так от, вирішення було майже таким як на фото. Різниця була в тому, що всередині циклу додавався
Мені не сподобався такий однобокий підхід, хоч я і був вражений простотою рішення
Тому, хоч ця задача і не є якоюсь складною, у неї є багато рішень, і вона для мене особлива)
Ще раз усім дякую за участь ❤️
1. @krond (від @krond) за найшвидший результат (0.00148с)
2. hidden (від Hidden), за якого проголосувало найбільше людей (61%)
Мої варіанти:
- звичайний (на фото — саме він)
- математичний
Додаткові варіанти від @krond:
- перший
- другий
- третій
А тепер коротенька історія:
В універу у нас були командні проєкти, до яких доєднювали менторів — людей, які працювали в айті і могли дати непідробні знання
Але на перший семестр першого курсу команда в нас не склалась якось...
Ніхто не хотів нічого робити, та й ментор не дуже за нами слідкував
Але на кінець семестру на нього трохи натиснули, і він почав нас ганяти по Пайтону (бо проєкт мав бути саме на ньому), і задача була саме написати функцію для послідовності Фібоначчі
Скільки часу ми тоді не гуглили, скільки б не думали (а я уже тоді вважав себе супер-крутим знавцем Пайтону, бо пройшов 2-3 безкоштовні курси, хєх) — ми не могли додуматись до того рішення, яке від нас очікував ментор
Так от, вирішення було майже таким як на фото. Різниця була в тому, що всередині циклу додавався
yield, а в умові задачі стояло "вивести послідовність до числа n". І за один виклик fib(100) ти отримував масив чисел з послідовності Фібоначчі, де усі числа менші за 100Мені не сподобався такий однобокий підхід, хоч я і був вражений простотою рішення
Тому, хоч ця задача і не є якоюсь складною, у неї є багато рішень, і вона для мене особлива)
Ще раз усім дякую за участь ❤️
❤3👍3🤯1🎉1🏆1 1
Про що я таке говорю?)
Це означає, що значення, яке змінюється в циклі, змінюється в скоупі, де існує цикл
Що відбувається в прикладі:
number рівне 2callback дивиться в скоуп по змінну number і знаходить там 2Як це виправити?
functools.partialТут можливо прийдеться додати аргументи до функції, які будуть передаватись через
partial, а раніше брались напряму зі скоупуСпробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥1😁1🤯1🦄1
У Пайтоні можна створювати клас всередині функції
А також всередині іншого класу)
Чи у іфці…
Коротше, можна все🤩
Але таке використання складніше читати, і зазвичай воно використовується у бібліотеках та фреймворках для спрощення зовнішнього використання
Одне з таких використань — створення об'єкту для позначення унікального значення. Такі об'єкти використовують наприклад у випадках, коли
До речі, make_sentinel — це реальна функція з чудової бібліотеки boltons
Спробувати самостійно | Підписатись
А також всередині іншого класу)
Чи у іфці…
Коротше, можна все
Але таке використання складніше читати, і зазвичай воно використовується у бібліотеках та фреймворках для спрощення зовнішнього використання
Одне з таких використань — створення об'єкту для позначення унікального значення. Такі об'єкти використовують наприклад у випадках, коли
None є доступним значенням. А функція make_sentinel покликана надати таким об'єктам кращого виглядуДо речі, make_sentinel — це реальна функція з чудової бібліотеки boltons
Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🌚1🤝1🦄1
Робота з csv-файлами
— це просто, з використанням Пайтону)
Для цього імпортуйте вбудовану бібліотеку
Останні два класи прям дуже круті, бо дозволяють оперувати одразу словниками, а не сирими даними
Я навіть у сорсах побачив використання
Спробувати самостійно | Підписатись
— це просто, з використанням Пайтону)
Для цього імпортуйте вбудовану бібліотеку
csv і оберіть потрібний клас — reader, writer, DictReader, DictWriterОстанні два класи прям дуже круті, бо дозволяють оперувати одразу словниками, а не сирими даними
Я навіть у сорсах побачив використання
dict(zip()), про який я розказував тут 😅Спробувати самостійно | Підписатись
👍6💅3❤2
Саме так працюють модулі у Пайтоні
Кожен модуль є інстансом класу
ModuleType, і за бажання його можна наслідувати і змінити логіку на ваш розсудОтож, що відбувається на картинці?
Усі атрибути нашого модуля (а точніше об'єкту класу
ThisModule) будуть мати атрибут some_attribute та метод some_functionУ методах замість
self буде наш модульБудь-які зміни атрибутів у методах — будуть працювати так само як
global у звичайному модуліОстанній рядок у коді каже Пайтону, що модуль з таким ім'ям має бути перезаписаний на об'єкт класу
ThisModule, оскільки sys.modules це і є те місце, де він зберігає усі модуліПайтону взагалі-то байдуже, що знаходиться у цьому словнику. Якщо там щось знаходиться з іменем
x, і програміст напише import x, Пайтон, не задумуючись, поверне це значенняСпробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2❤1❤🔥1🤡1
f-стрічки можуть набагато більше, ніж ви можете уявити
Одним із моїх улюблених прикладів є дата і час
Усі формати із
Тепер я не уявляю як можна писати по-інакшому😅
А якщо вам хочеться простішу версію
Це ліба, яка буквально робить зворотнє до f-стрічок — знаходить дані у стрічці у певному форматі і конвертує їх у відповідні типи
Спробувати самостійно | Підписатись
Одним із моїх улюблених прикладів є дата і час
Усі формати із
datetime.strftime() підтримуються і тутТепер я не уявляю як можна писати по-інакшому
А якщо вам хочеться простішу версію
datetime.strptime(), а може вам потрібен парсер не тільки для дат, то пригляніться до parseЦе ліба, яка буквально робить зворотнє до f-стрічок — знаходить дані у стрічці у певному форматі і конвертує їх у відповідні типи
Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥10❤6🤯3🤡3👍1