/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module25/04_company/main.py
93 строки
3 KB
Eugene Vorontsov
Copy repo python basic
03 фев 2025, 20:23
03 фев 2025, 20:23
a8fce4a
Код
Авторство
О чём код?
from random import randint, choice names = ['Иван', 'Пётр', 'Семён', 'Алексей', 'Данила', 'Евгений', 'Сергей', 'Андрей', 'Александр'] surnames = ['Иванов', 'Петров', 'Сидоров', 'Егоров', 'Толстой', 'Даль', 'Булгаков', 'Путин', 'Медведев'] def generator_person(): """ Генерируем случайные имя, фамилию и возраст из списков имен и фамилий, возраст генерируется случайным образом от 18 до 60 лет, при помощи модуля randint """ name = choice(names) surname = choice(surnames) age = randint(18, 60) return name, surname, age class Person: """ Родительский класс в котором создаются имена, фамилии и возраст работников Аргументы: __name (str): Имя __surname (str): Фамилия __age (int): Возраст """ def __init__(self, name, surname, age): self.__name = name self.__surname = surname self.__age = age def __str__(self): """Вывод на экран имя и фамилии""" return f'{self.__name} {self.__surname}, возраст: {self.__age}' class Employee(Person): """ Дочерний класс Employee (от родительского Person) в котором формируется зарплата работника по умолчанию, для Manager, она составляет 1300 """ def __init__(self, name, surname, age): super().__init__(name, surname, age) self.__salary = 1300 def __str__(self): """Вывод на экран зарплаты работника""" return super().__str__() + f' Зарплата: {self.__salary}.' def set_salary_agent(self, sales_volume): """Устанавливаем зарплату Агенту 5000 + 5% """ self.__salary = 5000 + (sales_volume * 5 / 100) def set_salary_worker(self, time_worked): """ Устанавливаем зарплату Рабочему: ставка умноженная на отработанное время """ self.__salary = 100 * time_worked class Manager(Employee): def __init__(self, name, surname, age): super().__init__(name, surname, age) class Agent(Employee): def __init__(self, name, surname, age): super().__init__(name, surname, age) class Worker(Employee): def __init__(self, name, surname, age): super().__init__(name, surname, age) employees = list() employees.append('Managers:') for _ in range(3): employees.append(Manager(*generator_person())) employees.append('Agents:') for _ in range(3): agent = Agent(*generator_person()) agent.set_salary_agent(randint(2000, 10000)) employees.append(agent) employees.append('Workers:') for _ in range(3): worker = Worker(*generator_person()) worker.set_salary_worker(randint(30, 68)) employees.append(worker) for data in employees: print(data)