Python练习(七)——面向对象

1.设计一个工资类(Salary),其中的数据成员有:
salary_li代表所有员工工资;
整型值number表示的职工人数。
在main函数中调用你自己设计好的成员函数完成下面的功能:

1). 输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);
2). 给每个人涨100元工资;
3). 对涨后的工资进行排序;
4)输出排序后的工资
class Salary(object):
    def __init__(self ,salary_li=[],number=0):
        self.salary_li=salary_li
        self.number=number
    def salaryInput(self):
        while True:
            salary = int(input("Input salary:"))
            if salary != -1:
                self.number += 1
                self.salary_li.append(salary)
            else:
                break
    def salarySort(self):
        return sorted(self.salary_li)
    def salaryAdd(self,money=100):
        self.salary_li=[items + money for items in self.salary_li]
        return self.salary_li

def main():
    s=Salary()
    s.salaryInput()
    s.salaryAdd()
    print(s.salarySort())

main()

这里写图片描述

拓展
手工输入工资?!太让人不能忍受了。现给出包含了500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。

import random
def create_file(filename):
    salary = (str(random.randint(4000,10000)) for i in range(500))
    with open(filename,'w+') as f:
        for salary1 in salary:
            f.write(salary1+'\n')
class Salary(object):
    def __init__(self ,salary_li=[],number=0):
        self.salary_li=salary_li
        self.number=number
    def Readfile(self,filename):
        with open(filename) as f:
            self.salary_li= [items.strip() for items in f.readlines()]
            self.number=len(self.salary_li)
    def salarySort(self):
        return sorted(self.salary_li)
    def salaryAdd(self,money=100):
        self.salary_li=[int(item) + money for item in self.salary_li]
        return self.salary_li

def main():
    create_file('StaffSalary.txt')
    s=Salary()
    s.Readfile('StaffSalary.txt')
    s.salaryAdd()
    print(s.salarySort())

if __name__ == '__main__':
    main()

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值