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

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

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


Чат — @python_kor0p_chat
Download Telegram
Сьогодні — повернемось до простіших прикладів)

Хтось не знав, а хтось забув, але метод .pop у словників дуже крутий:
▫️ Одразу повертає значення, яке щойно видалив
▫️Якщо вказати дефолтне значення (другий аргумент), то при відсутності ключа в словнику — не буде помилки


Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Думаєте усе знаєте про масиви? Можу посперечатись, що це не так 😎

Ось цікавий приклад: у Пайтоні можна заміняти не тільки один елемент у списку, але й декілька (через зріз [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