Python语言-面向对象

知识代码

class JobSalary(object):
    job = ''


    def __init__(self, city):
        self.jobname = "数据分析师"
        self.exp = ''
        self.city = city

    # 方法
    def data_normalize(self, data):
        print(f'正在规范化{self.city}{data}数据中...')
        self.__salary_deal()
        self.__exp_deal()

    def __salary_deal(self):
        print('薪资处理...')

    def __exp_deal(self):
        print('经验处理...')


if __name__ == '__main__':
    job = JobSalary('新乡')
    print(job.jobname)
    job.data_normalize('薪资')

    JobSalary.data_normalize(job, '岗位')

案例实战

案例一:薪资数据处理

class Person:

    def __init__(self):
        self.name = '子林'
        self.age = 18

    def eat(self, food):
        print(f'{self.name}吃{food}')


class DataSource:

    def get_salary_data(self):
        data = '''ETL开发工程师,3-5年,本科以上,13000-25000,北京中软国际信息技术有限公司,40.3万次浏览,,北京
        ETL开发工程师,2年经验,不限学历,1.2-1.8万/月,东华软件股份公司,20.7万次浏览,,北京
        ETL高级开发工程师,5-10年,本科以上,15000-20000,北京九恒星科技股份有限公司,1.4万次浏览,,郑州
        大数据ETL资深开发工程师,5-10年,本科以上,30000-60000,北京小桔科技有限公司,124.9万次浏览,,北京
        大数据ETL开发工程师-北京-00195,3-4年经验,不限学历,1.2-1.8万/月,北软互联(北京)科技有限公司,3047次浏览,,北京
        ETL开发工程师,3-5年,本科以上,13000-25000,北京中软国际信息技术有限公司,40.3万次浏览,,上海
        大数据ETL开发工程师-杭州-00197,3-4年经验,不限学历,1.2-1.8万/月,北软互联(北京)科技有限公司,3047次浏览,,杭州
        ETL开发工程师,3-5年,大专以上,15000-23000,珠海市卓轩科技有限公司,1.2万次浏览,,北京
        BI ETL开发工程师-,2年经验,不限学历,0.8-1.8万/月,东华软件股份公司,20.7万次浏览,,北京
        ETL开发工程师,3-4年经验,本科以上,1.5-3万/月,瑞鹏宠物医疗集团股份有限公司,10.7万次浏览,,北京
        ETL开发工程师 数据分析师,1-3年,本科以上,12000-25000,深圳索信达数据技术股份有限公司,4.7万次浏览,,北京
        ETL BI 工程师-数据实施,1年经验,不限学历,0.8-1.5万/月,北京派可数据科技有限公司,1249次浏览,,深圳
        etl开发工程师,3-5年,本科以上,12000-20000元,深圳市法本信息技术股份有限公司,16.5万次浏览,,深圳'''
        data_list = data.strip().split('\n')
        return data_list


# 包含薪资处理的常用属性,以及规范化处理相关内容
class Salary(object):

    # 构造函数,在对象初始化的时候执行
    def __init__(self):
        # 构造函数内部定义属性()
        self.jobname = ''
        self.exp = ''
        self.degree = ''
        self.salary = ''
        self.company = ''
        self.hit = ''
        self.city = ''
        # 标识当前数据是否脏数据
        self.flag = True

    # 针对一行数据规范化
    def data_standard(self, line):
        # 当前行内容解析
        line_list = line.replace(',', ',').split(',')
        if len(line_list) != 8:
            self.flag = False
            return
        self.jobname = line_list[0]
        self.exp = line_list[1]
        self.degree = line_list[2]
        self.salary = line_list[3]
        self.company = line_list[4]
        self.hit = line_list[5]
        self.city = line_list[7]

        # 经验数据处理
        self.deal_exp(self.exp)

        # 薪资数据处理
        self.deal_salary()

        # 点击量处理
        self.deal_hit()

    # 计算经验平均薪资  3-5年   2年经验  3-4年经验
    def calc_exp_avg(self, exp):
        exp_avg = 0
        if '经验' in exp:
            exp = exp.replace('年经验', '')
            exp_list = exp.split('-')
            if len(exp_list) == 2:
                exp_avg = (int(exp_list[0]) + int(exp_list[1])) / 2
            else:
                exp_avg = int(exp)
        else:
            exp = exp.replace('年', '')
            exp_list = exp.split('-')
            exp_avg = (int(exp_list[0]) + int(exp_list[1])) / 2
            # print(exp_avg)

        return exp_avg

    # 根据经验平均值获取标准枚举类型的名称
    def get_exp(self, exp_avg):
        exp_new = ''
        if exp_avg <= 2:
            exp_new = '[0-2]'
        elif exp_avg > 3 and exp_avg <= 5:
            exp_new = '(3-5]'
        elif exp_avg > 5:
            exp_new = '五年以上'
        else:
            exp_new = '(2-3]'
        return exp_new

    # 经验数据处理
    def deal_exp(self,expri):
        
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值