Веб-версіяВідкрити в Telegram
PPython просто | з Коропом

Python просто | з Коропом

@python_kor0p · канал · Технології · в індексі з 2026-05-22
222підписників−4 за тиждень
80постів в індексі
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
finally — ще один блок конструкції try/except Використовуйте finally, коли треба щось виконати, незалежно від результату інших блоків Наприклад: закрити файл, закрити конекшин/транзакцію у БД тощо Побічний ефект: цей блок виконається перед return, тому можна уникнути створення зайвої змінної для повернення результату з функції Теж саме стосується і break, і continue, якщо try/except знаходиться в циклі Документація Спробувати самостійно | Підписатись
3 · 367 ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
else Так знову 👀, але тепер у for 😅 Якщо у циклі не буде виклику break, виконається код у блоці else Якщо не буде жодного елемента, також виконається (всьо логічно ж 🤷‍♂️) Цю можливість можна використати для вкладених циклів, або для повернення дефолтного значення у блоці else Я сам інколи юзаю цю штуку, але завжди дописую коментерам умови, за яких виконається ця частина коду, і для чого саме так побудовано Тобто, це крутий інструмент, але доволі складний для розуміння, тому майте це на увазі у ваших проєктах) Спробувати самостійно | Підписатись
2 · 367 ·
Python просто | з Коропом
Фотографія
натисніть — покажемо
Опитування
натисніть — покажемо
Яким буде результат у останньому рядку? #вікторини
2 · 421 ·
P
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
Відповідь: [1, 40, 6, 4] Пояснення: При ітерації, не варто видаляти елементи з масиву — Пайтон губиться і може пропустити елемент 😢 Так відбувається через те, що для ітерації по масиву, Пайтон зберігає індекс, а видалення одного елемента зміщує індекс для інших Тому, якщо вам таки треба видалити об'єкт з масиву, по якому ви ітеруєтесь, скопіюйте масив через .copy() чи [:] Все те саме стосується і будь-яких інших змін у масиві — треба бути дуже обережним) Спробувати самостійно | Підписатись
8 · 774 ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
А що це тут таке складне? 🫠 А це — дескриптори Нумо читати статтю на Друкарні 😉 Спробувати самостійно | Підписатись
4 · 724 ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
Погані звички, які прийшли від купи старих гайдів 🫠 Одна з причин, чому я завів цей канал, це боротьба з ними 😅 Так от, with open це прекрасно, але навіщо вам трактор, якщо вам треба лопата?) Лопатою я тут назвав Path — дуже простий спосіб копати ями працювати з файлами Якщо треба зробити це швидко і небагато — ви візьмете лопату 😉 Записати текст у файл? file.write_text Зчитати текст з файлу? Тю, file.read_text Ви колись бачили щось простіше?) Звісно, ніхто не каже викидати open, просто це більш гнучкий інструмент, який буде корисним у складніших операціях, але з яким треба вміти поводитись (трактором от можна й танк тягнути 😉) Спробувати самостійно | Підписатись
11 · 517 ·
P
Python просто | з Коропом
Посилання
натисніть — покажемо
Нова рубрика — задачки по Пайтону! 🔥 Я уже раніше анонсував її, і вирішив, що не варто зволікати) Для початку, вибрав доволі стандартну задачку, але, надіюсь, вам сподобається 😊 Задача #1: Потрібно написати функцію fib, що повертатиме н-ний елемент послідовності Фібоначчі Послідовність починається з двох одиниць, і продовжується сумою двох попередніх елементів, тобто: 1, 1, 2, 3, 5, 8, 13, 21 і тд Ваші відповіді надсилайте у бот @python_kor0p_bot Переможці: 1. Код, що виконується найшвидше 2. Код, що сподобається підписникам у голосуванні Винагорода (на вибір): - 2 години менторства від мене - 100 грн Як буде перевірятись коректність та швидкодія — описую у окремому JupyterLite Відповіді приймаються до 9 червня 23:59 За мною залишається право задавати питання по вашій реалізації, щоб впевнитись, що код не крадений (ну або не від ШІ 😅) 10 червня буде проведено опитування серед підписників за найцікавішу відповідь, щоб визначити переможця #2 11 червня обидва переможці отримають свою винагороду, і їхні відповіді будуть опубліковані на каналі Також, я опублікую свій варіант розв'язку, якщо вам цікаво) Дуже чекаю ваших варіантів у боті ☺️
2 · 541 ·
Python просто | з Коропом
Опитування
натисніть — покажемо
2 · 541 ·
P
Сьогодні будемо обирати найцікавіший варіант вирішення 😎 Голосування (пост вище) буде відкрите до 23:59 Реалізації можна глянути ось тут: - @pvlvld (від @pvlvld) - @olsinika (від @olsinika) - @krond (від @krond) - hidden (від Hidden) Як і обіцяв, завтра опублікую і свій варіант P.S. він б не переміг 😭 Усім дякую за участь, було цікаво слідкувати за потоком думок і реалізацій У декого було декілька варіантів, і вони будуть опубліковані завтра (за згоди автора, звісно)
2 · 589 ·
P
Python просто | з Коропом
ВідповідьОпитування
Фотографія
натисніть — покажемо
Отже, переможці першого змагання: 1. @krond (від @krond) за найшвидший результат (0.00148с) 2. hidden (від Hidden), за якого проголосувало найбільше людей (61%) Мої варіанти: - звичайний (на фото — саме він) - математичний Додаткові варіанти від @krond: - перший - другий - третій А тепер коротенька історія: В універу у нас були командні проєкти, до яких доєднювали менторів — людей, які працювали в айті і могли дати непідробні знання Але на перший семестр першого курсу команда в нас не склалась якось... Ніхто не хотів нічого робити, та й ментор не дуже за нами слідкував Але на кінець семестру на нього трохи натиснули, і він почав нас ганяти по Пайтону (бо проєкт мав бути саме на ньому), і задача була саме написати функцію для послідовності Фібоначчі Скільки часу ми тоді не гуглили, скільки б не думали (а я уже тоді вважав себе супер-крутим знавцем Пайтону, бо пройшов 2-3 безкоштовні курси, хєх) — ми не могли додуматись до того рішення, яке від нас очікував ментор Так от, вирішення було майже таким як на фото. Різниця була в тому, що всередині циклу додавався yield, а в умові задачі стояло "вивести послідовність до числа n". І за один виклик fib(100) ти отримував масив чисел з послідовності Фібоначчі, де усі числа менші за 100 Мені не сподобався такий однобокий підхід, хоч я і був вражений простотою рішення Тому, хоч ця задача і не є якоюсь складною, у неї є багато рішень, і вона для мене особлива) Ще раз усім дякую за участь ❤️
729 ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
❗️Уникайте створення функцій в циклах Про що я таке говорю?) 🙃 ▫️У Пайтоні кожна функція та клас мають свою область видимості (скоуп), і відповідно — локальні змінні ▫️Коли створюється функція всередині будь-якого блоку, вона запам'ятовує скоуп, в якому вона була створена ▫️При виклику, функція може використовувати як і локальні змінні, так і змінні вищого скоупа ▫️Цикли не мають свого скоупа Це означає, що значення, яке змінюється в циклі, змінюється в скоупі, де існує цикл ▫️Якщо створити функцію всередині циклу, то той скоуп, який збереже функція для подальшого використання буде тим самий скоупом, який змінюється в циклі Що відбувається в прикладі: ▫️Після завершення циклу значення змінної number рівне 2 ▫️При виклику, функція callback дивиться в скоуп по змінну number і знаходить там 2 ▫️У результаті виводиться 3 двійки підряд 🙈 😢 Як це виправити? ▫️Спробуйте порефакторити код так, щоб функції не створювались в циклі ▫️Або ж спробуйте використати functools.partial Тут можливо прийдеться додати аргументи до функції, які будуть передаватись через partial, а раніше брались напряму зі скоупу Спробувати самостійно | Підписатись
2 · 1.1K ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
У Пайтоні можна створювати клас всередині функції А також всередині іншого класу) Чи у іфці… Коротше, можна все 🤩 Але таке використання складніше читати, і зазвичай воно використовується у бібліотеках та фреймворках для спрощення зовнішнього використання Одне з таких використань — створення об'єкту для позначення унікального значення. Такі об'єкти використовують наприклад у випадках, коли None є доступним значенням. А функція make_sentinel покликана надати таким об'єктам кращого вигляду До речі, make_sentinel — це реальна функція з чудової бібліотеки boltons Спробувати самостійно | Підписатись
5 · 1.3K ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
Фотографія
натисніть — покажемо
Робота з csv-файлами — це просто, з використанням Пайтону) Для цього імпортуйте вбудовану бібліотеку csv і оберіть потрібний клас — reader, writer, DictReader, DictWriter Останні два класи прям дуже круті, бо дозволяють оперувати одразу словниками, а не сирими даними Я навіть у сорсах побачив використання dict(zip()), про який я розказував тут 😅 Спробувати самостійно | Підписатись
4 · 1.7K ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
✨ Ви дивитесь на магію 🔮 Саме так працюють модулі у Пайтоні Кожен модуль є інстансом класу ModuleType, і за бажання його можна наслідувати і змінити логіку на ваш розсуд Отож, що відбувається на картинці? Усі атрибути нашого модуля (а точніше об'єкту класу ThisModule) будуть мати атрибут some_attribute та метод some_function У методах замість self буде наш модуль Будь-які зміни атрибутів у методах — будуть працювати так само як global у звичайному модулі Останній рядок у коді каже Пайтону, що модуль з таким ім'ям має бути перезаписаний на об'єкт класу ThisModule, оскільки sys.modules це і є те місце, де він зберігає усі модулі Пайтону взагалі-то байдуже, що знаходиться у цьому словнику. Якщо там щось знаходиться з іменем x, і програміст напише import x, Пайтон, не задумуючись, поверне це значення Спробувати самостійно | Підписатись
2 · 2.3K ·
P
Python просто | з Коропом
Фотографія
натисніть — покажемо
f-стрічки можуть набагато більше, ніж ви можете уявити Одним із моїх улюблених прикладів є дата і час Усі формати із datetime.strftime() підтримуються і тут Тепер я не уявляю як можна писати по-інакшому 😅 А якщо вам хочеться простішу версію datetime.strptime(), а може вам потрібен парсер не тільки для дат, то пригляніться до parse Це ліба, яка буквально робить зворотнє до f-стрічок — знаходить дані у стрічці у певному форматі і конвертує їх у відповідні типи Спробувати самостійно | Підписатись
8 · 2.2K ·

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Чого ми не робимо · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо