Python просто | з Коропом
222 subscribers
68 photos
43 links
Легко і доступно розказую про Пайтон

Ви завжди знайдете тут щось нове та корисне для себе 😊

Автор — @kor0p, практикуючий Пайтоніст з п'ятирічним досвідом 😎


Чат — @python_kor0p_chat
Download Telegram
Думаєте усе знаєте про масиви? Можу посперечатись, що це не так 😎

Ось цікавий приклад: у Пайтоні можна заміняти не тільки один елемент у списку, але й декілька (через зріз [0:1]) або замінити його увесь (через повний зріз [:])
І при цьому довжина списку може змінюватись — проблеми в цьому нема)


Спробувати самостійно | Підписатись
4👍2
А що ви знаєте про розпакування (unpacking) у Пайтоні?

А чи знали ви, що генератори також можна розпакувати?)

Це може бути корисно, наприклад, для створення індексів з іменами при зчитуванні таблиці чи csv-файлу


P.S. Так, range це генератор, і так, з іншими генераторами це також працює)


Спробувати самостійно | Підписатись
3
А сьогодні у мене для вас маленький хак для запису чисел

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


Спробувати самостійно | Підписатись
👍42
Час поговорити і про щось складніше, а саме — про генератори

Генератори — це такі ліниві ітератори. Вони виконуються тільки тоді, коли насправді треба буде

Один зі способів створення генератора — це швидкий вираз (comprehension) з круглими дужками

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


Спробувати самостійно | Підписатись
💅22
А ось вам і цікавинка

Ви можете перевірити чи буде значення видане генератором, за допомогою звичайного in

Тільки є один нюанс)
Генератор буде букально ітеруватись, поки не знайде потрібне значення
Якщо ж ітерація завершиться, то повернеться False


Спробувати самостійно | Підписатись
🔥42
Любі друзі, дорогі підписники 😊

Розкажіть, про яку тему ви хотіли б дізнатись більше?
Або про що варто розказати якомога простіше?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🌚2
Яким буде результат у останньому рядку?

#вікторини
4
Яким буде результат у останньому рядку?
Anonymous Quiz
45%
[3]
27%
[1, 3]
11%
Помилка
15%
[2, 3]
2%
[]
5🥱2
Правильна відповідь: [1, 3]

Пояснення:
Пайтон зберігає аргументи функції під час її створення, в тому числі й їхні значенні за замовчуванням

Тому, якщо не передавати другий аргумент явно, Пайтон гляне на опис функції, знайде там масив, і просто передасть його натомість

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

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



Спробувати самостійно | Підписатись
🔥83👍1
Якщо ви працюєте з даними в Пайтоні, вам точно треба знати про такі дві функції:
▫️ any — Перевіряє чи є хоча б одне істинне значення
▫️ all — Перевіряє чи усі значення є істинними

Як зрозуміти, що значення — істинне?

Якщо для if це значення виконає умову, воно — істинне
Для структур даних, можна також сказати, що вони мають бути "не пустими"


Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Насправді, таку ж функцію можна реалізувати самостійно 😎

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

З цього, зокрема, стає зрозуміло, чому any([]) дає False. Якщо не відбулось жодної ітерації — буде False


Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓6😁1
Теж саме стосується і all() — тут навіть реалізації схожі 😅

Ітеруємось по значеннях, і якщо зустріли не істинне — виходимо з функції з негативним результатом. Якщо ж усі значення істинні, то виходимо з позитивним

Відповідно, для all([]) результат буде True — оскільки жодної ітерації не відбулось


Спробувати самостійно | Підписатись
👨‍💻11
Якщо, коли вам треба прибрати частинку з початку тексту, або з кінця, ви використовуєте .strip(), то ви робите це неправильно 🌚

Метод .strip() видалить будь-який з перелічених символів з початку та кінця стрічки. Ці символи можуть бути у будь-якому порядку та у будь-якій кількості. Цей метод видалятиме символи з обох боків, поки перший та останній символ не будуть серед вказаних у аргументі
*rstrip() зробить це лише з кінця, а lstrip() — лише з початку

Якщо ж треба просто видалити підстрічку з іншої стрічки з початку чи з кінця, то .removeprefix() чи .removesuffix() — саме те, що вам треба 🔥


Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👏2✍11