初识python: 类练习 - 老板&员工

Posted simple-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识python: 类练习 - 老板&员工相关的知识,希望对你有一定的参考价值。

需求:

  1、员工具有姓名、年龄、能力值(能力值为100-年龄),可以工作,每工作一次,该员工的能力值-5,创建__str__方法,打印该员工的信息;
  2、老板具有投资金额,工作量,员工列表。可以雇佣员工,雇佣后将员工添加至列表中,雇佣一人投资金额减5000,金额不足时不能雇佣新员工;
  3、员工工作时,依次取出员工列表中的员工开始工作,员工能力值减少的同时总的工作量也减少,当工作量为0时,工作结束;
  4、如果所有员工使用完后,依然没有完成工作,则提示老板需要雇佣新员工,并打印剩余工作量;
  5、结束工作,打印员工的能力值信息。

具体代码如下:

技术图片
#!/user/bin env python
# author:Simple-Sir
# time:2019/8/30 14:12
# 类的练习:老板与员工

class Boss():
    ‘‘‘
    老板类
    money : 老板的金额
    workload : 工作量
    emplist : 员工列表
    ‘‘‘
    def __init__(self,money,workload):
        super(Boss,self)
        self.money = money
        self.workload = workload
        self.emplist = []

    def staff(self,emp_obj):
        ‘‘‘
        雇佣员工
        :param emp_obj: 员工对象
        ‘‘‘
        if self.money >= 5000:
            self.emplist.append(emp_obj)
            self.money -= 5000
            print(员工信息已添加!\\n您一共有%s个员工%len(self.emplist))
        else:
            print(您的金额已不足,无法再招聘员工!)

    def startWork(self):
        print(emmmm...您还没有员工,请先招聘员工。)
        is_staff = ‘‘
        while is_staff != N:
            name = input(员工姓名:).strip()
            age = int(input(年龄:).strip())
            while age<18 or age>=65:
                if age <= 3 or age >= 70:
                    print(嘿,朋友!走点心!尊老爱幼是中华名族的传统美德!)
                elif age >= 4 and age < 18:
                    print(你确定要雇佣童工吗?)
                elif age >= 65:
                    print(朋友,这已经是退休年龄了!)
                age = int(input(年龄:).strip())
            e = Employees(name, age)
            print(e)  # 查看员工信息
            self.staff(e)
            if self.money >= 5000:
                is_staff = input(您是否还要继续招聘员工?).strip().upper()
            else:
                print(您的资产已不足已再招聘一个员工了!将开始工作!)
                break
        print(------ 所有员工信息 ------)
        for info in self.emplist:
            print(姓  名:%s\\n年  龄:%s\\n能力值:%s\\n - - - - - - - - - - - - - - - - % (info.name, info.age, info.ability))
        for e in self.emplist:
            while e.ability >= 0:
                e.work()
                self.workload -= 5
                if self.workload <= 0:
                    print(工作已完成)
                    return
        if self.workload > 0:
            print(还有%s个工作量没做完,需要招聘新的员工! % self.workload)

    def endWork(self):
        结束工作
        if len(self.emplist) > 0:
            print(----- 员工能力值 -----)
            for e in self.emplist:
                e.ability = 0 if e.ability < 0 else e.ability
                print(%s的能力值:%s%(e.name,e.ability))

class Employees(object):
    员工
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.ability = 100 - age

    def __str__(self):
        员工信息
        return ‘‘‘
--- 员工信息 ---
    姓名:%s
    年龄:%s
    能力值:%s  
        ‘‘‘%(self.name,self.age,self.ability)

    def work(self):
        工作
        print(%s正在工作....%self.name)
        self.ability -= 5


def main():
    money = int(input(老板,您打算投资多少钱啊?\\n).strip())
    while money < 5000:
            print(这么点钱还想当老板?再考虑考虑?)
            money = int(input(老板,您到底打算投资多少钱啊?\\n).strip())
    workload = int(input(老板,您有多少工作要做呢?\\n).strip())
    while workload <= 0:
            print(您是大善人么?不用工作,还能拿工资!)
            workload = int(input(好好想想,您到底有多少工作要做呢?\\n).strip())
    b = Boss(money,workload)
    b.startWork()
    b.endWork()

if __name__ == __main__:
    main()
老板与员工

执行结果部分截图如下:

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

以上是关于初识python: 类练习 - 老板&员工的主要内容,如果未能解决你的问题,请参考以下文章

Python就业班——初识面向对象——练习——Person

初识函数式编程

Python就业班——初识面向对象——练习——Car

python3初识 之 简单目录练习

Python就业班——初识面向对象——练习——People

python练习员工信息增删改查程序