Python 🇺🇦
▪️Вивчаємо Python разом. ▪️Високооплачувана професія ▪️Допомагаємо з пошуком роботи Зв'язок: @Ekater1na_admin
Show more📈 Analytical overview of Telegram channel Python 🇺🇦
Channel Python 🇺🇦 in the Ukrainian language segment is an active participant. Currently, the community unites 20 860 subscribers, ranking 6 480 in the Technologies & Applications category and 2 947 in the Ukraine region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 20 860 subscribers.
According to the latest data from 12 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -180 over the last 30 days and by -7 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 9.57%. Within the first 24 hours after publication, content typically collects 5.40% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 996 views. Within the first day, a publication typically gains 1 127 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 12.
- Thematic interests: Content is focused on key topics such as шпаргалка, mcp, user1, python'er, бібліотека.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“▪️Вивчаємо Python разом.
▪️Високооплачувана професія
▪️Допомагаємо з пошуком роботи
Зв'язок: @Ekater1na_admin”
Thanks to the high frequency of updates (latest data received on 13 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
match 1:
case 1:
print('p')
case 1:
print('y')
case _:
print('thon')
👉 Відповідь
#practice // Архів книг // Pythonsubgen, яка повертатиме числа від 0 до переданого аргументу.
def subgen(n): # підгенератор
for i in range(n):
yield i
def delegator(source): # делегуючий генератор
# for item in source:
# yield item
yield from source
g = subgen(5)
for j in delegator(g):
print(j, end=' ')
# Output: 0 1 2 3 4
А також ще одну генераторну функцію delegator, яка повертатиме числа з об'єкта source, що ітерується, який передамо в якості аргументу.
Цикл, який можна написати в delegator, можна замінити лише одним рядком. Тобто yield from замінює цикл for, в якому тільки повертаються значення через yield.
Грубо кажучи, така конструкція є певним тунелем передачі даних туди і назад. У нашій ситуації delegator можна назвати генератором, що делегує, а subgen — підгенератором.
#practice // Вакансії IT // Pythonglobal показує, що змінна глобальна, і всі зміни відіб'ються в основному блоці програми.
x = 50
def func():
global x
print('х дорівнює', х)
x = 2
print('Замінюємо глобальне значення х на', х)
func( )
print('Значення х становить', х)
# х дорівнює 50
# Замінюємо глобальне значення x на 2
# Значення x становить 2
Зарезервоване слово nonlocal застосовується у вкладених функціях, коли потрібно закріпити ідентифікатор за змінною у зовнішній функції.
def func_outer():
x = 2
print('x дорівнює', x)
def func_inner():
nonlocal x
x = 5
func_inner()
print( 'Локальне х змістилось на', х)
func_outer()
# х дорівнює 2
# Локальное х змістилось на 5
#theory // Архів книг // Pythonfrom datetime import date
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# classmethod створює об'єкт людини за датою народження
@classmethod
def from_birth_year(cls, name, year):
return cls(name, date.today().year - year)
person1 = Person('Artem', 21)
person2 = Person.from_birth_year('Artem', 1996)
print (person1.age)
>>> 21
print (person2.age)
>>> 22
Декоратор @classmethod — це метод, який отримує клас як параметр, який прийнято позначати як cls. Він вказує на клас ToyClass, а не на об'єкт цього класу, і має доступ до всіх атрибутів класу.
Методи класу прив'язані до самого класу, а не до його екземпляру. Вони можуть змінювати стан класу, що позначиться на всіх об'єктах цього класу, але не можуть змінювати конкретний об'єкт.
#practice // Архів книг // Pythongetpass.
import getpass
user = getpass.getuser()
password = getpass.getpass()
Цей дуже простий пакет дозволяє запитувати у користувача пароль, а також отримувати ім'я користувача, витягуючи ім'я, під яким він увійшов до системи.
#practice // Архів книг // Pythonos.fork() створює дочірній процес у тому ж місці коду, викликаючи системну функцію fork(), і повертає PID (Process Identifier), який дорівнює PID дочірнього процесу в батьківському процесі і нулю в новому.
import os
pid = os. fork()
if pid == 0:
# дочірній процес
print(f'Process {os.getpid()} was created by {os.getppid()}.')
else:
# батьківський процес
print(f'Process {os.getpid()} just created {pid}.')
Цікаво, що в прикладі коду виконується і блок if, і else. Якщо не знати про os.fork() і подивитися виведення такого коду, то виникне багато питань.
#practice // Архів книг // Pythonclass Age:
def __init__(self):
self.__value = None
def __get__(self, obj, obj_type):
return self.__value
def __set__(self, obj, value);
if isinstance(value, int) and value > 0:
self.__value = value
def __delete__(self, obj):
del self.__value
class Person:
age = Age()
def __init__(self, name, age):
self.name = name
self.age = age #__set__
john = Person('John', 20)
john.age = 25 # __set__
print (john.age) # __get__
del john.age # __delete__
Для того, щоб визначити свій власний дескриптор, зазвичай визначають три спеціальні методи класу __get__, __set__ або __delete__. Після цього можна створити новий клас і в атрибуті цього класу записати об'єкт типу дескриптор. У даного об'єкта буде перевизначено поведінку при доступі до атрибуту (__get__), присвоювання значень (__set__) або видалення (__delete__).
#practice // Архів книг // Python@property, а сетер у вигляді @властивість.setter.
class Person:
def __init__(self, name, age):
self.__name = name
self.__age = age
@property # гетер
def age(self):
return self.__age
@age.setter # сетер
def age(self, value):
assert value > 0, 'Age cannot be negative.'
self.__age = value
mark = Person('Mark', 25)
mark.age = 30
print(mark.age)
# Output: 30
mark.age = -20
# AssertionError: Age cannot be negative.
В наведеному прикладі метод гетера називається age, тому декоратор сетера — @age.setter. Обидва методи повинні мати однакову назву, за якою можна буде звертатися як до звичайного атрибуту.
#practice // Архів книг // Python
Available now! Telegram Research 2025 — the year's key insights 
