ru
Feedback
Python πŸ‡ΊπŸ‡¦

Python πŸ‡ΊπŸ‡¦

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»

β–ͺ️Вивчаємо Python Ρ€Π°Π·ΠΎΠΌ. β–ͺ️Високооплачувана профСсія β–ͺ️Допомагаємо Π· ΠΏΠΎΡˆΡƒΠΊΠΎΠΌ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π—Π²'язок: @Ekater1na_admin

Π‘ΠΎΠ»ΡŒΡˆΠ΅

πŸ“ˆ АналитичСский ΠΎΠ±Π·ΠΎΡ€ Telegram-ΠΊΠ°Π½Π°Π»Π° Python πŸ‡ΊπŸ‡¦

Канал Python πŸ‡ΊπŸ‡¦ языкового сСгмСнта Украинский являСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ участником. БСйчас сообщСство ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ 20 332 подписчиков, занимая 6 352 мСсто Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ прилоТСния ΠΈ 2 992 мСсто Π² Ρ€Π΅Π³ΠΈΠΎΠ½Π΅ Π£ΠΊΡ€Π°ΠΈΠ½Π°.

πŸ“Š ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° создания Π½Π΅Π²Ρ–Π΄ΠΎΠΌΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ дСмонстрируСт ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рост, собрав Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ· 20 332 подписчиков.

Богласно послСдним Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚ 27 августа, 2026, ΠΊΠ°Π½Π°Π» ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π—Π° послСдниС 30 Π΄Π½Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ числа участников составило -195, Π° Π·Π° послСдниС 24 часа β€” -8, ΠΏΡ€ΠΈ этом ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΡ…Π²Π°Ρ‚ остаётся высоким.

  • Бтатус Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ: НС Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½
  • Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ вовлСчённости (ER): Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ вовлСчённости Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ составляСт 10.51%. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 24 часа послС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ 5.42% Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ числа подписчиков.
  • ΠžΡ…Π²Π°Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ: Π’ срСднСм ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пост ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 2 137 просмотров. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… суток публикация Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ 1 102 просмотров.
  • Π Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΈ взаимодСйствия: Аудитория Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: срСднСС количСство Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½ пост β€” 14.
  • ВСматичСскиС интСрСсы: ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚ сосрСдоточСн Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°, mcp, user1, python'er, Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠ°.

πŸ“ ОписаниС ΠΈ контСнтная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°

Автор описываСт рСсурс ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ для выраТСния ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ мнСния:
β€œβ–ͺ️Вивчаємо Python Ρ€Π°Π·ΠΎΠΌ. β–ͺ️Високооплачувана профСсія β–ͺ️Допомагаємо Π· ΠΏΠΎΡˆΡƒΠΊΠΎΠΌ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π—Π²'язок: @Ekater1na_admin”

Благодаря высокой частотС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (послСдниС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ 28 августа, 2026) ΠΊΠ°Π½Π°Π» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΡ…Π²Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ. Аналитика ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ аудитория Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ взаимодСйствуСт с ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ влияния Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ прилоТСния.

20 332
ΠŸΠΎΠ΄ΠΏΠΈΡΡ‡ΠΈΠΊΠΈ
-824 часа
-487 Π΄Π½Π΅ΠΉ
-19530 дСнь
Архив постов
Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° β€œPython Syllabus”: Π½Π°Π²Ρ‡Π°Π»ΡŒΠ½ΠΈΠΉ ΠΏΠ»Π°Π½ Π· Python β€” Π±Π°Π·ΠΈ (Ρ‚ΠΈΠΏΠΈ Π΄Π°Π½ΠΈΡ…, Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, ΠΊΠΎΠ»Π΅ΠΊΡ†Ρ–Ρ—, Ρ†ΠΈΠΊΠ»ΠΈ), ООП (класи, об’єкти, нас
Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° β€œPython Syllabus”: Π½Π°Π²Ρ‡Π°Π»ΡŒΠ½ΠΈΠΉ ΠΏΠ»Π°Π½ Π· Python β€” Π±Π°Π·ΠΈ (Ρ‚ΠΈΠΏΠΈ Π΄Π°Π½ΠΈΡ…, Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, ΠΊΠΎΠ»Π΅ΠΊΡ†Ρ–Ρ—, Ρ†ΠΈΠΊΠ»ΠΈ), ООП (класи, об’єкти, наслідування, винятки) Ρ‚Π° скриптинг (рядки, Ρ„Π°ΠΉΠ»ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΠΉ рядок, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ) Python

ΠžΠΏΠ°Π½ΡƒΠΉ Python Ρ€Π°Π·ΠΎΠΌ Π· University of Helsinki β€’ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρˆ ΠΎΡ„Ρ–Ρ†Ρ–ΠΉΠ½ΠΈΠΉ сСртифікат після Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ β€’ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρˆ ΡˆΠ»ΡΡ… Π²Ρ–Π΄ ΠΏΠΎΠ²Π½ΠΎΠ³ΠΎ нуля
ΠžΠΏΠ°Π½ΡƒΠΉ Python Ρ€Π°Π·ΠΎΠΌ Π· University of Helsinki β€’ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρˆ ΠΎΡ„Ρ–Ρ†Ρ–ΠΉΠ½ΠΈΠΉ сСртифікат після Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ β€’ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρˆ ΡˆΠ»ΡΡ… Π²Ρ–Π΄ ΠΏΠΎΠ²Π½ΠΎΠ³ΠΎ нуля Π΄ΠΎ Π²ΠΏΠ΅Π²Π½Π΅Π½ΠΎΠ³ΠΎ рівня β€’ 14 насичСних ΠΌΠΎΠ΄ΡƒΠ»Ρ–Π² Ρ–Π· ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΈΠΌΠΈ завданнями ΠšΡƒΡ€Ρ Ρ‡Π΅ΠΊΠ°Ρ” Π½Π° Ρ‚Π΅Π±Π΅ Ρ‚ΡƒΡ‚ Python

Π©ΠΎ Π²ΠΈΠ²Π΅Π΄Π΅ ΠΊΠΎΠ΄?
Anonymous voting

ΠŸβ€™ΡΡ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π΄Π΅Π±Π°Π³Ρƒ: Π²ΠΈΡ€Ρ–ΡˆΠΈΠ² ΠΏΡ–Ρ‚ΠΈ Π½Π° ΠΎΠ±Ρ–Π΄, ΠΏΠΎΠΊΠΈ всС Π³ΠΎΡ€ΠΈΡ‚ΡŒ Python

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π· класів Ρƒ Python: Π½Π°ΠΎΡ‡Π½Π΅ пояснСння класів Ρ– СкзСмплярів, self, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ–Π² Ρ– ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ–Π², ΡΠΏΡ–Π»ΡŒΠ½ΠΈΡ… Ρ‚Π° інстанс-Π·ΠΌΡ–Π½Π½ΠΈΡ…, Π·
Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π· класів Ρƒ Python: Π½Π°ΠΎΡ‡Π½Π΅ пояснСння класів Ρ– СкзСмплярів, self, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ–Π² Ρ– ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ–Π², ΡΠΏΡ–Π»ΡŒΠ½ΠΈΡ… Ρ‚Π° інстанс-Π·ΠΌΡ–Π½Π½ΠΈΡ…, Π·Ρ– Π·Ρ€ΠΎΠ·ΡƒΠΌΡ–Π»ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π°ΠΌΠΈ створСння ΠΉ використання об’єктів Python

ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΉ Python-Ρ‚Ρ€ΡŽΠΊ: як ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ ΠΌΡ–Π½Ρ–ΠΌΡƒΠΌ Ρ– максимум послідовності Π£ Python Π΄ΠΎΡΡ‚Π°Ρ‚Π½ΡŒΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– min() Ρ‚Π° max(), Ρ‰ΠΎΠ±
+1
ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΉ Python-Ρ‚Ρ€ΡŽΠΊ: як ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ ΠΌΡ–Π½Ρ–ΠΌΡƒΠΌ Ρ– максимум послідовності Π£ Python Π΄ΠΎΡΡ‚Π°Ρ‚Π½ΡŒΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– min() Ρ‚Π° max(), Ρ‰ΠΎΠ± Π·Π½Π°ΠΉΡ‚ΠΈ наймСншС ΠΉ Π½Π°ΠΉΠ±Ρ–Π»ΡŒΡˆΠ΅ значСння Π² Π±ΡƒΠ΄ΡŒ-якій послідовності А Ρ‰Π΅ ΠΎΠ±ΠΈΠ΄Π²Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΌΠ°ΡŽΡ‚ΡŒ Π·Ρ€ΡƒΡ‡Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ default β€” Π²Ρ–Π½ станС Ρƒ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Ρ–, якщо Ρ€Π°ΠΏΡ‚ΠΎΠΌ ваша колСкція Π²ΠΈΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΡ€ΠΎΠΆΠ½ΡŒΠΎΡŽ. Π‘Π΅Π· Π·Π°ΠΉΠ²ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΎΠΊ Ρ– винятків Python

Python + OpenCV – Ρ€ΠΎΠ±ΠΎΡ‚Π° Π· зобраТСннями Π£ Π²Ρ–Π΄Π΅ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, як обробляти Ρ„ΠΎΡ‚ΠΎ Ρ‚Π° Π²Ρ–Π΄Π΅ΠΎ: Ρ„Ρ–Π»ΡŒΡ‚Ρ€ΠΈ, розпізнавання об’єктів, ΠΊΠ°ΠΌΠ΅Ρ€Π°
Python + OpenCV – Ρ€ΠΎΠ±ΠΎΡ‚Π° Π· зобраТСннями Π£ Π²Ρ–Π΄Π΅ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, як обробляти Ρ„ΠΎΡ‚ΠΎ Ρ‚Π° Π²Ρ–Π΄Π΅ΠΎ: Ρ„Ρ–Π»ΡŒΡ‚Ρ€ΠΈ, розпізнавання об’єктів, ΠΊΠ°ΠΌΠ΅Ρ€Π° Python

Класика ΠΆΠ°Π½Ρ€Ρƒ Python

АвтотСсти для Python Pynguin Π³Π΅Π½Π΅Ρ€ΡƒΡ” ΡŽΠ½Ρ–Ρ‚-тСсти Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π· урахуванням Π΄ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΎΡ— Ρ‚ΠΈΠΏΡ–Π·Π°Ρ†Ρ–Ρ—. Π’ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΠΎΠ΄ ΠΏΡ–Π΄ час Π°Π½Π°Π»Ρ–Π·Ρƒ β€”
АвтотСсти для Python Pynguin Π³Π΅Π½Π΅Ρ€ΡƒΡ” ΡŽΠ½Ρ–Ρ‚-тСсти Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π· урахуванням Π΄ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΎΡ— Ρ‚ΠΈΠΏΡ–Π·Π°Ρ†Ρ–Ρ—. Π’ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΠΎΠ΄ ΠΏΡ–Π΄ час Π°Π½Π°Π»Ρ–Π·Ρƒ β€” запускайтС Π² Ρ–Π·ΠΎΠ»ΡŒΠΎΠ²Π°Π½ΠΎΠΌΡƒ сСрСдовищі ВстановлСння: pip install pynguin Python

Π„ ΠΎΠ΄Π½Π° Ρ€Ρ–Ρ‡, Ρ‰ΠΎ нас усіх об’єднує Python
Π„ ΠΎΠ΄Π½Π° Ρ€Ρ–Ρ‡, Ρ‰ΠΎ нас усіх об’єднує Python

Π©ΠΎ Π²ΠΈΠ²Π΅Π΄Π΅ ΠΊΠΎΠ΄?
Anonymous voting

OpenInterpreter β€” Ρ†Π΅ опСнсорс-інструмСнт, Ρ‰ΠΎ запускає ΠΊΠΎΠ΄ Π·Π° Π·Π²ΠΈΡ‡Π°ΠΉΠ½ΠΈΠΌΠΈ тСкстовими ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠžΡΠ½ΠΎΠ²Π½Ρ– моТливості: β€’ Π²ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΠΎ
OpenInterpreter β€” Ρ†Π΅ опСнсорс-інструмСнт, Ρ‰ΠΎ запускає ΠΊΠΎΠ΄ Π·Π° Π·Π²ΠΈΡ‡Π°ΠΉΠ½ΠΈΠΌΠΈ тСкстовими ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
ΠžΡΠ½ΠΎΠ²Π½Ρ– моТливості: β€’ Π²ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΠΎΠ΄ Π·Π° описом: Π²ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ–Π½ΡΡ‚Ρ€ΡƒΠΊΡ†Ρ–ΡŽ Π·Π²ΠΈΡ‡Π°ΠΉΠ½ΠΎΡŽ мовою, Π° OpenInterpreter Π³Π΅Π½Π΅Ρ€ΡƒΡ” ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΈΠΉ ΠΊΠΎΠ΄, запускає ΠΉΠΎΠ³ΠΎ після підтвСрдТСння Ρ‚Π° ΠΏΠΎΠΊΠ°Π·ΡƒΡ” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρƒ Ρ‚Π΅Ρ€ΠΌΡ–Π½Π°Π»Ρ– β€’ ΠΏΡ€Π°Ρ†ΡŽΡ” Π· Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ‚Π° ΠΌΠ΅Π΄Ρ–Π°: інструмСнт ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΡ” Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, Ρ€Π΅Π΄Π°Π³ΡƒΡ” PDF Ρ– масово обробляє зобраТСння ΠΎΠ΄Π½Ρ–Ρ”ΡŽ командою β€’ Π°Π½Π°Π»Ρ–Π·ΡƒΡ” Π΄Π°Π½Ρ–: Π±ΡƒΠ΄ΡƒΡ” Π³Ρ€Π°Ρ„Ρ–ΠΊΠΈ, ΠΎΡ‡ΠΈΡ‰Π°Ρ” датасСти, трансформує Ρ—Ρ… Ρ– Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΡ” ΠΌΡ–Π½Ρ–-Π·Π²Ρ–Ρ‚ΠΈ β€’ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΡƒΡ” Ρ€ΠΎΠ±ΠΎΡ‚Ρƒ Π· Π²Π΅Π±ΠΎΠΌ: Π·Π±ΠΈΡ€Π°Ρ” Π΄Π°Π½Ρ– Π·Ρ– сторінок, Π·Π°ΠΏΠΎΠ²Π½ΡŽΡ” Ρ„ΠΎΡ€ΠΌΠΈ Ρ‚Π° тСстує інтСрфСйси Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΡ— участі β€’ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ” Π±Π΅Π·ΠΏΠ΅Ρ‡Π½ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ: ΠΏΠ΅Ρ€Π΅Π΄ запуском Π±ΡƒΠ΄ΡŒ-якого ΠΊΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ підтвСрдТСння, Π°Π»Π΅ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ ΠΌΠΎΠΆΠ΅ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Ρ‚ΠΈ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌΡ–
Python

ΠŸΠΎΡ€Π°Π΄Π° для чистих тСстів Ρƒ Python
Π£ Π±Ρ–Π»ΡŒΡˆΠΎΡΡ‚Ρ– Π²ΠΈΠΏΠ°Π΄ΠΊΡ–Π² якісні тСсти ΠΌΠ°ΡŽΡ‚ΡŒ ΠΎΡ…ΠΎΠΏΠ»ΡŽΠ²Π°Ρ‚ΠΈ Ρ‚Π°ΠΊΡ– ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€Ρ–Ρ—: β€’ основні Β«happy pathΒ» сцСнарії, Π΄Π΅ всС ΠΏΡ€Π°Ρ†ΡŽΡ” як ΠΎΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ β€’ ΠΊΡ€Π°ΠΉΠΎΠ²Ρ– Ρ‚Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ– Π²ΠΈΠΏΠ°Π΄ΠΊΠΈ β€’ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ– тСсти, Ρ‰ΠΎ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΡΡŽΡ‚ΡŒ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ β€’ ситуації Π· Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈΠΌΠΈ Π°Π±ΠΎ Π½Π΅Π±Π΅Π·ΠΏΠ΅Ρ‡Π½ΠΈΠΌΠΈ Π²Π²ΠΎΠ΄Π°ΠΌΠΈ
import uuid
from dataclasses import dataclass
from typing import Optional


@dataclass
class User:
    username: str


class InMemoryUserRepository:
    def __init__(self):
        self._users = []

    def add(self, user: User) -> None:
        self._users.append(user)

    def search(self, query: Optional[str] = None) -> list[User]:
        if query is None:
            return self._users
        else:
            return [
                user
                for user in self._users
                if query in user.username
            ]


# happy path
def test_search_users_without_query_lists_all_users():
    user1 = User(username="john@doe.com")
    user2 = User(username="marry@doe.com")
    repository = InMemoryUserRepository()
    repository.add(user1)
    repository.add(user2)

    assert repository.search() == [user1, user2]


# happy path
def test_search_users_with_email_part_lists_all_matching_users():
    user1 = User(username="john@doe.com")
    user2 = User(username="bob@example.com")
    user3 = User(username="marry@doe.com")
    repository = InMemoryUserRepository()
    repository.add(user1)
    repository.add(user2)
    repository.add(user3)

    assert repository.search("doe") == [user1, user3]


# edge test case
def test_search_users_with_empty_query_lists_all_users():
    user1 = User(username="john@doe.com")
    user2 = User(username="marry@doe.com")
    repository = InMemoryUserRepository()
    repository.add(user1)
    repository.add(user2)

    assert repository.search("") == [user1, user2]


# negative test case
def test_search_users_with_random_query_lists_zero_users():
    user1 = User(username="john@doe.com")
    repository = InMemoryUserRepository()
    repository.add(user1)

    assert repository.search(str(uuid.uuid4())) == []


# security test
def test_search_users_with_sql_injection_has_no_effect():
    user1 = User(username="john@doe.com")
    repository = InMemoryUserRepository()
    repository.add(user1)

    repository.search("DELETE FROM USERS;")
    assert repository.search() == [user1]
Python

Π’Π°ΠΉΠ±-ΠΊΠΎΠ΄Π΅Ρ€ΠΈ Ρ‡ΠΈΡΡ‚ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ–Π΄ Π΅ΠΌΠΎΠ΄Π·Ρ– ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ€Π΄ΠΆΠ΅ΠΌ Python
Π’Π°ΠΉΠ±-ΠΊΠΎΠ΄Π΅Ρ€ΠΈ Ρ‡ΠΈΡΡ‚ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ–Π΄ Π΅ΠΌΠΎΠ΄Π·Ρ– ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ€Π΄ΠΆΠ΅ΠΌ Python

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π· Intermediate Python: ΠΊΠ»ΡŽΡ‡ΠΎΠ²Ρ– Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Ρ‚Π° стандартні ΠΌΠΎΠ΄ΡƒΠ»Ρ– (JSON, datetime, subprocess) Python
Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π· Intermediate Python: ΠΊΠ»ΡŽΡ‡ΠΎΠ²Ρ– Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Ρ‚Π° стандартні ΠΌΠΎΠ΄ΡƒΠ»Ρ– (JSON, datetime, subprocess) Python

На GitHub Ρ” Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€Ρ–ΠΉ Python-скриптів, Π΄Π΅ Π·Ρ–Π±Ρ€Π°Π½ΠΎ Π±Π°Π³Π°Ρ‚ΠΎ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈΡ…, Π°Π»Π΅ корисних ΡƒΡ‚ΠΈΠ»Ρ–Ρ‚ Ρ– ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ–Π² ΠΊΠΎΠ΄Ρƒ Π½Π° Python, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‡ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΈ Ρ„Π°ΠΉΠ»Ρ–Π², скрипти для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†Ρ–Ρ—, прості GUI-Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΈ Ρ‚Π° Π½Π°Π²Ρ‡Π°Π»ΡŒΠ½Ρ– ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π° ΡΠΏΡ–Π»ΡŒΠ½ΠΎΡ‚Π° поступово ΠΏΠΎΠΏΠΎΠ²Π½ΡŽΡ” ΠΊΠΎΠ»Π΅ΠΊΡ†Ρ–ΡŽ. Π—Π±Π΅Ρ€Ρ–Π³Π°Ρ”ΠΌΠΎ ❀️ Python'er

Π©ΠΎ Π²ΠΈΠ²Π΅Π΄Π΅ ΠΊΠΎΠ΄?
Anonymous voting