Загрузка данных
class WorkParticipant:
def __init__(self, name, age):
self.name = name
self.age = age
def display_info(self):
return f"Имя: {self.name}, Возраст: {self.age}"
class Manager(WorkParticipant):
def __init__(self, name, age, department):
super().__init__(name, age)
self.position = "Менеджер"
self.department = department
def display_info(self):
base_info = super().display_info()
return f"{base_info}, Должность: {self.position}, Отдел: {self.department}"
class Developer(WorkParticipant):
def __init__(self, name, age, programming_language):
super().__init__(name, age)
self.position = "Разработчик"
self.programming_language = programming_language
def display_info(self):
base_info = super().display_info()
return f"{base_info}, Должность: {self.position}, Язык программирования: {self.programming_language}"
class Designer(WorkParticipant):
def __init__(self, name, age, design_tool):
super().__init__(name, age)
self.position = "Дизайнер"
self.design_tool = design_tool
def display_info(self):
base_info = super().display_info()
return f"{base_info}, Должность: {self.position}, Инструмент: {self.design_tool}"
class WorkTeam:
def __init__(self):
self.members = []
def add_member(self, participant):
self.members.append(participant)
print(f"Добавлен участник: {participant.display_info()}")
def remove_member(self, name):
for participant in self.members:
if participant.name == name:
self.members.remove(participant)
print(f"Удален участник: {name}")
return
print(f"Участник с именем {name} не найден")
def display_all_members(self):
if not self.members:
print("Команда пуста")
else:
print("\n=== Список всех участников команды ===")
for i, member in enumerate(self.members, 1):
print(f"{i}. {member.display_info()}")
def get_average_age(self):
if not self.members:
return 0
total_age = sum(member.age for member in self.members)
average = total_age / len(self.members)
print(f"\nСредний возраст команды: {average:.2f} лет")
return average
def filter_by_position(self, position):
filtered = [member for member in self.members if member.position == position]
if filtered:
print(f"\n=== Участники с должностью '{position}' ===")
for member in filtered:
print(member.display_info())
else:
print(f"Участники с должностью '{position}' не найдены")
# Пример использования
if __name__ == "__main__":
team = WorkTeam()
# Создаём участников разных должностей
manager1 = Manager("Анна", 32, "Маркетинг")
developer1 = Developer("Борис", 28, "Python")
designer1 = Designer("Виктория", 25, "Figma")
developer2 = Developer("Дмитрий", 30, "JavaScript")
manager2 = Manager("Елена", 35, "Продажи")
# Добавляем участников в команду
team.add_member(manager1)
team.add_member(developer1)
team.add_member(designer1)
team.add_member(developer2)
team.add_member(manager2)
# Выводим полный список
team.display_all_members()
# Фильтруем по должностям
team.filter_by_position("Разработчик")
team.filter_by_position("Менеджер")
# Средний возраст команды
team.get_average_age()
# Удаляем участника
team.remove_member("Виктория")
# Обновлённый список
team.display_all_members()