首页 > 编程语言 >Python语言-面向对象

Python语言-面向对象

时间:2024-07-23 09:54:03浏览次数:19  
标签:salary __ 语言 Python self list 面向对象 exp data

知识代码

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):
        # 针对于经验平均值处理
        exp_avg = self.calc_exp_avg(expri)
        # 解析经验区间
        exp_new = self.get_exp(exp_avg)

        self.exp = exp_new
        return exp_new

    def deal_salary(self):
        salary = self.salary.replace('元', '')
        if '万/月' in salary:
            salary = salary.replace('万/月', '')
            salary_list = salary.split('-')
            self.salary = round((float(salary_list[0]) + float(salary_list[1])) * 10000 / 2, 2)
        else:
            salary_list = salary.split('-')
            self.salary = round((float(salary_list[0]) + float(salary_list[1])) / 2, 2)

    # 处理点击量  20.7万次浏览 1249次浏览
    def deal_hit(self):
        if '万' in self.hit:
            hit = self.hit.replace('万次浏览', '')
            hit_new = float(hit) * 10000
        else:
            hit = self.hit.replace('次浏览', '')
            hit_new = float(hit)
        self.hit = hit_new
        return hit_new

    def __repr__(self):
        return f'{self.jobname},{self.exp}'
    def __str__(self):
       return  f'{self.jobname},{self.exp}'


class SalaryAnalysis:

    # 薪资分析类构造函数
    def __init__(self, datas):
        self.jobs = datas

    def city_analysis(self):
        city_dict = {}
        for item in self.jobs:
            city = item.city
            salary = item.salary
            value = city_dict.get(city)
            if value:
                value.append(salary)
            else:
                city_dict[city] = [salary]

        for k, v in city_dict.items():
            log = f'{k}大数据行业平均薪资为{round(sum(v)/len(v))}'
            print(log)


if __name__ == '__main__':
    # source = DataSource()
    # datas = DataSource.get_salary_data(source)
    datas = DataSource().get_salary_data()
    res = []
    for line in datas:
        job_salary = Salary()
        job_salary.data_standard(line)
        # Salary.data_standard(job_salary,line)
        if job_salary.flag:
            res.append(job_salary)
            # print(job_salary)
    print([item for item in res])
    salary_analysis = SalaryAnalysis(res)
    salary_analysis.city_analysis()

案例二:诗词筛选

用面向对象的方式寻找下面诗词中包括“花”的语句,并输出

◎卷.1【咏舞】萧德言
  低身锵玉珮,举袖拂罗衣。对檐疑燕起,映雪似花飞。
  ◎卷.2【过严君平古井】郑世翼
  严平本高尚,远蹈古人风。卖卜成都市,流名大汉中。
  旧井改人世,寒泉久不通。年多既罢汲,无禽乃遂空。
  如何属秋气,唯见落双桐。
  ◎卷.3【登北邙还望京洛】郑世翼
  步登北邙坂,踟蹰聊写望。宛洛盛皇居,规模穷大壮。
  三河分设险,两崤资巨防。飞观紫烟中,层台碧云上。
  青槐夹驰道,迢迢修且旷。左右多第宅,参差居将相。
  清晨谒帝返,车马相追访。胥徒各异流,文物纷殊状。
  嚣尘暗天起,箫管从风飏。伊余孤且直,生平独沦丧。
  山幽有桂丛,何为坐惆怅。
  ◎卷.4【巫山高】郑世翼
  巫山凌太清,岧峣类削成。霏霏暮雨合,霭霭朝云生。
  危峰入鸟道,深谷写猿声。别有幽栖客,淹留攀桂情。
  ◎卷.5【看新婚】郑世翼
  初笄梦桃李,新妆应摽梅。疑逐朝云去,翻随暮雨来。
  杂佩含风响,丛花隔扇开。姮娥对此夕,何用久裴回。
  ◎卷.6【见佳人负钱出路】郑世翼
  独负千金价,应从买笑来。只持难发口,经为几人开。
  ◎卷.7【送金竟陵入蜀】崔信明
  金门去蜀道,玉垒望长安。岂言千里远,方寻九折难。
  西上君飞盖,东归我挂冠。猿声出峡断,月彩落江寒。
  从今与君别,花月几新残。
  ◎卷.8【句】崔信明
  枫落吴江冷。
  ◎卷.9【侍宴咏石榴】孔绍安
  可惜庭中树,移根逐汉臣。只为来时晚,花开不及春。
  ◎卷.10【咏夭桃】孔绍安
  结叶还临影,飞香欲遍空。不意馀花落,翻沉露井中。
  ◎卷.11【赠蔡君】孔绍安
  畴昔同幽谷,伊尔迁乔木。赫奕盛青紫,讨论穷简牍。
  ◎卷.12【结客少年场行】孔绍安
  结客佩吴钩,横行度陇头。雁在弓前落,云从阵后浮。
  吴师惊燧象,燕将警奔牛。转蓬飞不息,冰河结未流。
  若使三边定,当封万户侯。
  ◎卷.13【伤顾学士】孔绍安
  迢递双崤道,超忽三川湄。此中俱失路,思君不可思。
  游人行变橘,逝者遽焚芝。忆昔江湖上,同咏子衿诗。
  何言陵谷徙,翻惊邻笛悲。陈根非席卉,繐帐异书帷。
  与善成空说,歼良信在兹。今日严夫子,哀命不哀时。
  ◎卷.14【别徐永元秀才】孔绍安
  金汤既失险,玉石乃同焚。坠叶还相覆,落羽更为群。
  岂谓三秋节,重伤千里分。远离弦易转,幽咽水难闻。
  欲识相思处,山川间白云。
  ◎卷.15【落叶(一作孔德绍诗)】孔绍安
  早秋惊落叶,飘零似客心。翻飞未肯下,犹言惜故林。
  ◎卷.16【踏歌词三首】谢偃
  春景娇春台,新露泣新梅。春叶参差吐,新花重叠开。
  花影飞莺去,歌声度鸟来。倩看飘飖雪,何如舞袖回。
  逶迤度香阁,顾步出兰闺。欲绕鸳鸯殿,先过桃李蹊。
  风带舒还卷,簪花举复低。欲问今宵乐,但听歌声齐。
  夜久星沉没,更深月影斜。裙轻才动珮,鬟薄不胜花。
  细风吹宝袂,轻露湿红纱。相看乐未已,兰灯照九华。
  ◎卷.17【乐府新歌应教】谢偃
  青楼绮阁已含春,凝妆艳粉复如神。细细轻裙全漏影,
  离离薄扇讵障尘。樽中酒色恒宜满,曲里歌声不厌新。
  紫燕欲飞先绕栋,黄莺始哢即娇人。撩乱垂丝昏柳陌,
  参差浓叶暗桑津。上客莫畏斜光晚,自有西园明月轮。
  ◎卷.18【奉和出颍至淮应令】蔡允恭
  久倦川涂曲,忽此望淮圻。波长泛淼淼,眺迥情依依。
  稍觉金乌转,渐见锦帆稀。欲知仁化洽,讴歌满路归。
  ◎卷.19【和卫尉寺柳】杜之松
  汉将本屯营,辽河有戍城。大夫曾取姓,先生亦得名。
  高枝拂远雁,疏影度遥星。不辞攀折苦,为入管弦声。
  ◎卷.20【答王无功冬夜载酒乡馆】崔善为
  颁条忝贵郡,悬榻久相望。处士同杨郑,邦君谢李疆。
  讵知方拥彗,逢子敬惟桑。明朝蓬户侧,会自谒任棠。
  ◎卷.21【答王无功九日】崔善为
  秋来菊花气,深山客重寻。露叶疑涵玉,风花似散金。
  摘来还泛酒,独坐即徐斟。王弘贪自醉,无复觅杨林。
  ◎卷.22【答王无功问故园】朱仲晦
  我从铜州来,见子上京客。问我故乡事,慰子羁旅色。
  子问我所知,我对子应识。朋游总强健,童稚各长成。
  华宗盛文史,连墙富池亭。独子园最古,旧林间新坰。
  柳行随堤势,茅斋看地形。竹从去年移,梅是今年荣。
  渠水经夏响,石苔终岁青。院果早晚熟,林花先后明。
  语罢相叹息,浩然起深情。归哉且五斗,饷子东皋耕。
  ◎卷.23【从军行】王宏
  儿生三日掌上珠,燕颔猿肱秾李肤。十五学剑北击胡,
  羌歌燕筑送城隅。城隅路接伊川驿,河阳渡头邯郸陌。
  可怜少年把手时,黄鸟双飞梨花白。秦王筑城三千里,
  西自临洮东辽水。山边叠叠黑云飞,海畔莓莓青草死。
  从来战斗不求勋,杀身为君君不闻。凤凰楼上吹急管,
  落日裴回肠先断。
  ◎卷.24【文德皇后挽歌】朱子奢
  神京背紫陌,缟驷结行輈。北去横桥道,西分清渭流。
  寒光向垄没,霜气入松楸。今日泉台路,非是濯龙游。
  ◎卷.25【大酺乐】张文收
  泪滴珠难尽,容残玉易销。倘随明月去,莫道梦魂遥。
  ◎卷.26【与琳法师】毛明素
  冶长倦缧绁,韩安叹死灰。始验山中木,方知贵不材。

 实现1:

class Poem:

    #通过外部传入关键字(花)查找诗句
    def find(self,kw):
        data = self.load_data()
        print(f'******{kw}******')
        for line in data:
            if kw in line and '◎' not in line:
                print(line.strip())

    #数据加载
    def load_data(self):
        data = '''◎卷.1【咏舞】萧德言
  低身锵玉珮,举袖拂罗衣。对檐疑燕起,映雪似花飞。
  ◎卷.2【过严君平古井】郑世翼
  严平本高尚,远蹈古人风。卖卜成都市,流名大汉中。
  旧井改人世,寒泉久不通。年多既罢汲,无禽乃遂空。
  如何属秋气,唯见落双桐。
  ◎卷.3【登北邙还望京洛】郑世翼
  步登北邙坂,踟蹰聊写望。宛洛盛皇居,规模穷大壮。
  三河分设险,两崤资巨防。飞观紫烟中,层台碧云上。
  青槐夹驰道,迢迢修且旷。左右多第宅,参差居将相。
  清晨谒帝返,车马相追访。胥徒各异流,文物纷殊状。
  嚣尘暗天起,箫管从风飏。伊余孤且直,生平独沦丧。
  山幽有桂丛,何为坐惆怅。
  ◎卷.4【巫山高】郑世翼
  巫山凌太清,岧峣类削成。霏霏暮雨合,霭霭朝云生。
  危峰入鸟道,深谷写猿声。别有幽栖客,淹留攀桂情。
  ◎卷.5【看新婚】郑世翼
  初笄梦桃李,新妆应摽梅。疑逐朝云去,翻随暮雨来。
  杂佩含风响,丛花隔扇开。姮娥对此夕,何用久裴回。
  ◎卷.6【见佳人负钱出路】郑世翼
  独负千金价,应从买笑来。只持难发口,经为几人开。
  ◎卷.7【送金竟陵入蜀】崔信明
  金门去蜀道,玉垒望长安。岂言千里远,方寻九折难。
  西上君飞盖,东归我挂冠。猿声出峡断,月彩落江寒。
  从今与君别,花月几新残。
  ◎卷.8【句】崔信明
  枫落吴江冷。
  ◎卷.9【侍宴咏石榴】孔绍安
  可惜庭中树,移根逐汉臣。只为来时晚,花开不及春。
  ◎卷.10【咏夭桃】孔绍安
  结叶还临影,飞香欲遍空。不意馀花落,翻沉露井中。
  ◎卷.11【赠蔡君】孔绍安
  畴昔同幽谷,伊尔迁乔木。赫奕盛青紫,讨论穷简牍。
  ◎卷.12【结客少年场行】孔绍安
  结客佩吴钩,横行度陇头。雁在弓前落,云从阵后浮。
  吴师惊燧象,燕将警奔牛。转蓬飞不息,冰河结未流。
  若使三边定,当封万户侯。
  ◎卷.13【伤顾学士】孔绍安
  迢递双崤道,超忽三川湄。此中俱失路,思君不可思。
  游人行变橘,逝者遽焚芝。忆昔江湖上,同咏子衿诗。
  何言陵谷徙,翻惊邻笛悲。陈根非席卉,繐帐异书帷。
  与善成空说,歼良信在兹。今日严夫子,哀命不哀时。
  ◎卷.14【别徐永元秀才】孔绍安
  金汤既失险,玉石乃同焚。坠叶还相覆,落羽更为群。
  岂谓三秋节,重伤千里分。远离弦易转,幽咽水难闻。
  欲识相思处,山川间白云。
  ◎卷.15【落叶(一作孔德绍诗)】孔绍安
  早秋惊落叶,飘零似客心。翻飞未肯下,犹言惜故林。
  ◎卷.16【踏歌词三首】谢偃
  春景娇春台,新露泣新梅。春叶参差吐,新花重叠开。
  花影飞莺去,歌声度鸟来。倩看飘飖雪,何如舞袖回。
  逶迤度香阁,顾步出兰闺。欲绕鸳鸯殿,先过桃李蹊。
  风带舒还卷,簪花举复低。欲问今宵乐,但听歌声齐。
  夜久星沉没,更深月影斜。裙轻才动珮,鬟薄不胜花。
  细风吹宝袂,轻露湿红纱。相看乐未已,兰灯照九华。
  ◎卷.17【乐府新歌应教】谢偃
  青楼绮阁已含春,凝妆艳粉复如神。细细轻裙全漏影,
  离离薄扇讵障尘。樽中酒色恒宜满,曲里歌声不厌新。
  紫燕欲飞先绕栋,黄莺始哢即娇人。撩乱垂丝昏柳陌,
  参差浓叶暗桑津。上客莫畏斜光晚,自有西园明月轮。
  ◎卷.18【奉和出颍至淮应令】蔡允恭
  久倦川涂曲,忽此望淮圻。波长泛淼淼,眺迥情依依。
  稍觉金乌转,渐见锦帆稀。欲知仁化洽,讴歌满路归。
  ◎卷.19【和卫尉寺柳】杜之松
  汉将本屯营,辽河有戍城。大夫曾取姓,先生亦得名。
  高枝拂远雁,疏影度遥星。不辞攀折苦,为入管弦声。
  ◎卷.20【答王无功冬夜载酒乡馆】崔善为
  颁条忝贵郡,悬榻久相望。处士同杨郑,邦君谢李疆。
  讵知方拥彗,逢子敬惟桑。明朝蓬户侧,会自谒任棠。
  ◎卷.21【答王无功九日】崔善为
  秋来菊花气,深山客重寻。露叶疑涵玉,风花似散金。
  摘来还泛酒,独坐即徐斟。王弘贪自醉,无复觅杨林。
  ◎卷.22【答王无功问故园】朱仲晦
  我从铜州来,见子上京客。问我故乡事,慰子羁旅色。
  子问我所知,我对子应识。朋游总强健,童稚各长成。
  华宗盛文史,连墙富池亭。独子园最古,旧林间新坰。
  柳行随堤势,茅斋看地形。竹从去年移,梅是今年荣。
  渠水经夏响,石苔终岁青。院果早晚熟,林花先后明。
  语罢相叹息,浩然起深情。归哉且五斗,饷子东皋耕。
  ◎卷.23【从军行】王宏
  儿生三日掌上珠,燕颔猿肱秾李肤。十五学剑北击胡,
  羌歌燕筑送城隅。城隅路接伊川驿,河阳渡头邯郸陌。
  可怜少年把手时,黄鸟双飞梨花白。秦王筑城三千里,
  西自临洮东辽水。山边叠叠黑云飞,海畔莓莓青草死。
  从来战斗不求勋,杀身为君君不闻。凤凰楼上吹急管,
  落日裴回肠先断。
  ◎卷.24【文德皇后挽歌】朱子奢
  神京背紫陌,缟驷结行輈。北去横桥道,西分清渭流。
  寒光向垄没,霜气入松楸。今日泉台路,非是濯龙游。
  ◎卷.25【大酺乐】张文收
  泪滴珠难尽,容残玉易销。倘随明月去,莫道梦魂遥。
  ◎卷.26【与琳法师】毛明素
  冶长倦缧绁,韩安叹死灰。始验山中木,方知贵不材。'''
        data_list = data.split('\n')
        return data_list


if __name__ == '__main__':
    poem = Poem()
    kw_list = ['山','花']
    poem.find('山')

实现2:

class Poem:

    # 通过外部传入关键字(花)查找诗句
    def find(self, *kw):
        data = self.load_data()
        for item in kw:
            print(f'******{item}******')
            for line in data:
                if item in line and '◎' not in line:
                    print(line.strip())

    # 数据加载
    def load_data(self):
        data = '''◎卷.1【咏舞】萧德言
  低身锵玉珮,举袖拂罗衣。对檐疑燕起,映雪似花飞。
  ◎卷.2【过严君平古井】郑世翼
  严平本高尚,远蹈古人风。卖卜成都市,流名大汉中。
  旧井改人世,寒泉久不通。年多既罢汲,无禽乃遂空。
  如何属秋气,唯见落双桐。
  ◎卷.3【登北邙还望京洛】郑世翼
  步登北邙坂,踟蹰聊写望。宛洛盛皇居,规模穷大壮。
  三河分设险,两崤资巨防。飞观紫烟中,层台碧云上。
  青槐夹驰道,迢迢修且旷。左右多第宅,参差居将相。
  清晨谒帝返,车马相追访。胥徒各异流,文物纷殊状。
  嚣尘暗天起,箫管从风飏。伊余孤且直,生平独沦丧。
  山幽有桂丛,何为坐惆怅。
  ◎卷.4【巫山高】郑世翼
  巫山凌太清,岧峣类削成。霏霏暮雨合,霭霭朝云生。
  危峰入鸟道,深谷写猿声。别有幽栖客,淹留攀桂情。
  ◎卷.5【看新婚】郑世翼
  初笄梦桃李,新妆应摽梅。疑逐朝云去,翻随暮雨来。
  杂佩含风响,丛花隔扇开。姮娥对此夕,何用久裴回。
  ◎卷.6【见佳人负钱出路】郑世翼
  独负千金价,应从买笑来。只持难发口,经为几人开。
  ◎卷.7【送金竟陵入蜀】崔信明
  金门去蜀道,玉垒望长安。岂言千里远,方寻九折难。
  西上君飞盖,东归我挂冠。猿声出峡断,月彩落江寒。
  从今与君别,花月几新残。
  ◎卷.8【句】崔信明
  枫落吴江冷。
  ◎卷.9【侍宴咏石榴】孔绍安
  可惜庭中树,移根逐汉臣。只为来时晚,花开不及春。
  ◎卷.10【咏夭桃】孔绍安
  结叶还临影,飞香欲遍空。不意馀花落,翻沉露井中。
  ◎卷.11【赠蔡君】孔绍安
  畴昔同幽谷,伊尔迁乔木。赫奕盛青紫,讨论穷简牍。
  ◎卷.12【结客少年场行】孔绍安
  结客佩吴钩,横行度陇头。雁在弓前落,云从阵后浮。
  吴师惊燧象,燕将警奔牛。转蓬飞不息,冰河结未流。
  若使三边定,当封万户侯。
  ◎卷.13【伤顾学士】孔绍安
  迢递双崤道,超忽三川湄。此中俱失路,思君不可思。
  游人行变橘,逝者遽焚芝。忆昔江湖上,同咏子衿诗。
  何言陵谷徙,翻惊邻笛悲。陈根非席卉,繐帐异书帷。
  与善成空说,歼良信在兹。今日严夫子,哀命不哀时。
  ◎卷.14【别徐永元秀才】孔绍安
  金汤既失险,玉石乃同焚。坠叶还相覆,落羽更为群。
  岂谓三秋节,重伤千里分。远离弦易转,幽咽水难闻。
  欲识相思处,山川间白云。
  ◎卷.15【落叶(一作孔德绍诗)】孔绍安
  早秋惊落叶,飘零似客心。翻飞未肯下,犹言惜故林。
  ◎卷.16【踏歌词三首】谢偃
  春景娇春台,新露泣新梅。春叶参差吐,新花重叠开。
  花影飞莺去,歌声度鸟来。倩看飘飖雪,何如舞袖回。
  逶迤度香阁,顾步出兰闺。欲绕鸳鸯殿,先过桃李蹊。
  风带舒还卷,簪花举复低。欲问今宵乐,但听歌声齐。
  夜久星沉没,更深月影斜。裙轻才动珮,鬟薄不胜花。
  细风吹宝袂,轻露湿红纱。相看乐未已,兰灯照九华。
  ◎卷.17【乐府新歌应教】谢偃
  青楼绮阁已含春,凝妆艳粉复如神。细细轻裙全漏影,
  离离薄扇讵障尘。樽中酒色恒宜满,曲里歌声不厌新。
  紫燕欲飞先绕栋,黄莺始哢即娇人。撩乱垂丝昏柳陌,
  参差浓叶暗桑津。上客莫畏斜光晚,自有西园明月轮。
  ◎卷.18【奉和出颍至淮应令】蔡允恭
  久倦川涂曲,忽此望淮圻。波长泛淼淼,眺迥情依依。
  稍觉金乌转,渐见锦帆稀。欲知仁化洽,讴歌满路归。
  ◎卷.19【和卫尉寺柳】杜之松
  汉将本屯营,辽河有戍城。大夫曾取姓,先生亦得名。
  高枝拂远雁,疏影度遥星。不辞攀折苦,为入管弦声。
  ◎卷.20【答王无功冬夜载酒乡馆】崔善为
  颁条忝贵郡,悬榻久相望。处士同杨郑,邦君谢李疆。
  讵知方拥彗,逢子敬惟桑。明朝蓬户侧,会自谒任棠。
  ◎卷.21【答王无功九日】崔善为
  秋来菊花气,深山客重寻。露叶疑涵玉,风花似散金。
  摘来还泛酒,独坐即徐斟。王弘贪自醉,无复觅杨林。
  ◎卷.22【答王无功问故园】朱仲晦
  我从铜州来,见子上京客。问我故乡事,慰子羁旅色。
  子问我所知,我对子应识。朋游总强健,童稚各长成。
  华宗盛文史,连墙富池亭。独子园最古,旧林间新坰。
  柳行随堤势,茅斋看地形。竹从去年移,梅是今年荣。
  渠水经夏响,石苔终岁青。院果早晚熟,林花先后明。
  语罢相叹息,浩然起深情。归哉且五斗,饷子东皋耕。
  ◎卷.23【从军行】王宏
  儿生三日掌上珠,燕颔猿肱秾李肤。十五学剑北击胡,
  羌歌燕筑送城隅。城隅路接伊川驿,河阳渡头邯郸陌。
  可怜少年把手时,黄鸟双飞梨花白。秦王筑城三千里,
  西自临洮东辽水。山边叠叠黑云飞,海畔莓莓青草死。
  从来战斗不求勋,杀身为君君不闻。凤凰楼上吹急管,
  落日裴回肠先断。
  ◎卷.24【文德皇后挽歌】朱子奢
  神京背紫陌,缟驷结行輈。北去横桥道,西分清渭流。
  寒光向垄没,霜气入松楸。今日泉台路,非是濯龙游。
  ◎卷.25【大酺乐】张文收
  泪滴珠难尽,容残玉易销。倘随明月去,莫道梦魂遥。
  ◎卷.26【与琳法师】毛明素
  冶长倦缧绁,韩安叹死灰。始验山中木,方知贵不材。'''
        data_list = data.split('\n')
        return data_list


if __name__ == '__main__':
    poem = Poem()
    poem.find('花', '山', '水', '月', '风')

实现3: 

class Poem:

    # 通过外部传入关键字(花)查找诗句
    def find(self, *kw):
        data = self.load_data()
        for item in kw:
            print(f'******{item}******')
            for line in data:
                line_list = line.replace('。',',').replace(',',',').split(',')
                for sen in line_list:
                    if item in sen and '◎' not in sen:
                        print(sen.strip())
                # line_list = line.replace('。',',').split(',')
                # if item in line and '◎' not in line:
                #     print(line.strip())


    # 数据加载
    def load_data(self):
        data = '''◎卷.1【咏舞】萧德言
  低身锵玉珮,举袖拂罗衣。对檐疑燕起,映雪似花飞。
  ◎卷.2【过严君平古井】郑世翼
  严平本高尚,远蹈古人风。卖卜成都市,流名大汉中。
  旧井改人世,寒泉久不通。年多既罢汲,无禽乃遂空。
  如何属秋气,唯见落双桐。
  ◎卷.3【登北邙还望京洛】郑世翼
  步登北邙坂,踟蹰聊写望。宛洛盛皇居,规模穷大壮。
  三河分设险,两崤资巨防。飞观紫烟中,层台碧云上。
  青槐夹驰道,迢迢修且旷。左右多第宅,参差居将相。
  清晨谒帝返,车马相追访。胥徒各异流,文物纷殊状。
  嚣尘暗天起,箫管从风飏。伊余孤且直,生平独沦丧。
  山幽有桂丛,何为坐惆怅。
  ◎卷.4【巫山高】郑世翼
  巫山凌太清,岧峣类削成。霏霏暮雨合,霭霭朝云生。
  危峰入鸟道,深谷写猿声。别有幽栖客,淹留攀桂情。
  ◎卷.5【看新婚】郑世翼
  初笄梦桃李,新妆应摽梅。疑逐朝云去,翻随暮雨来。
  杂佩含风响,丛花隔扇开。姮娥对此夕,何用久裴回。
  ◎卷.6【见佳人负钱出路】郑世翼
  独负千金价,应从买笑来。只持难发口,经为几人开。
  ◎卷.7【送金竟陵入蜀】崔信明
  金门去蜀道,玉垒望长安。岂言千里远,方寻九折难。
  西上君飞盖,东归我挂冠。猿声出峡断,月彩落江寒。
  从今与君别,花月几新残。
  ◎卷.8【句】崔信明
  枫落吴江冷。
  ◎卷.9【侍宴咏石榴】孔绍安
  可惜庭中树,移根逐汉臣。只为来时晚,花开不及春。
  ◎卷.10【咏夭桃】孔绍安
  结叶还临影,飞香欲遍空。不意馀花落,翻沉露井中。
  ◎卷.11【赠蔡君】孔绍安
  畴昔同幽谷,伊尔迁乔木。赫奕盛青紫,讨论穷简牍。
  ◎卷.12【结客少年场行】孔绍安
  结客佩吴钩,横行度陇头。雁在弓前落,云从阵后浮。
  吴师惊燧象,燕将警奔牛。转蓬飞不息,冰河结未流。
  若使三边定,当封万户侯。
  ◎卷.13【伤顾学士】孔绍安
  迢递双崤道,超忽三川湄。此中俱失路,思君不可思。
  游人行变橘,逝者遽焚芝。忆昔江湖上,同咏子衿诗。
  何言陵谷徙,翻惊邻笛悲。陈根非席卉,繐帐异书帷。
  与善成空说,歼良信在兹。今日严夫子,哀命不哀时。
  ◎卷.14【别徐永元秀才】孔绍安
  金汤既失险,玉石乃同焚。坠叶还相覆,落羽更为群。
  岂谓三秋节,重伤千里分。远离弦易转,幽咽水难闻。
  欲识相思处,山川间白云。
  ◎卷.15【落叶(一作孔德绍诗)】孔绍安
  早秋惊落叶,飘零似客心。翻飞未肯下,犹言惜故林。
  ◎卷.16【踏歌词三首】谢偃
  春景娇春台,新露泣新梅。春叶参差吐,新花重叠开。
  花影飞莺去,歌声度鸟来。倩看飘飖雪,何如舞袖回。
  逶迤度香阁,顾步出兰闺。欲绕鸳鸯殿,先过桃李蹊。
  风带舒还卷,簪花举复低。欲问今宵乐,但听歌声齐。
  夜久星沉没,更深月影斜。裙轻才动珮,鬟薄不胜花。
  细风吹宝袂,轻露湿红纱。相看乐未已,兰灯照九华。
  ◎卷.17【乐府新歌应教】谢偃
  青楼绮阁已含春,凝妆艳粉复如神。细细轻裙全漏影,
  离离薄扇讵障尘。樽中酒色恒宜满,曲里歌声不厌新。
  紫燕欲飞先绕栋,黄莺始哢即娇人。撩乱垂丝昏柳陌,
  参差浓叶暗桑津。上客莫畏斜光晚,自有西园明月轮。
  ◎卷.18【奉和出颍至淮应令】蔡允恭
  久倦川涂曲,忽此望淮圻。波长泛淼淼,眺迥情依依。
  稍觉金乌转,渐见锦帆稀。欲知仁化洽,讴歌满路归。
  ◎卷.19【和卫尉寺柳】杜之松
  汉将本屯营,辽河有戍城。大夫曾取姓,先生亦得名。
  高枝拂远雁,疏影度遥星。不辞攀折苦,为入管弦声。
  ◎卷.20【答王无功冬夜载酒乡馆】崔善为
  颁条忝贵郡,悬榻久相望。处士同杨郑,邦君谢李疆。
  讵知方拥彗,逢子敬惟桑。明朝蓬户侧,会自谒任棠。
  ◎卷.21【答王无功九日】崔善为
  秋来菊花气,深山客重寻。露叶疑涵玉,风花似散金。
  摘来还泛酒,独坐即徐斟。王弘贪自醉,无复觅杨林。
  ◎卷.22【答王无功问故园】朱仲晦
  我从铜州来,见子上京客。问我故乡事,慰子羁旅色。
  子问我所知,我对子应识。朋游总强健,童稚各长成。
  华宗盛文史,连墙富池亭。独子园最古,旧林间新坰。
  柳行随堤势,茅斋看地形。竹从去年移,梅是今年荣。
  渠水经夏响,石苔终岁青。院果早晚熟,林花先后明。
  语罢相叹息,浩然起深情。归哉且五斗,饷子东皋耕。
  ◎卷.23【从军行】王宏
  儿生三日掌上珠,燕颔猿肱秾李肤。十五学剑北击胡,
  羌歌燕筑送城隅。城隅路接伊川驿,河阳渡头邯郸陌。
  可怜少年把手时,黄鸟双飞梨花白。秦王筑城三千里,
  西自临洮东辽水。山边叠叠黑云飞,海畔莓莓青草死。
  从来战斗不求勋,杀身为君君不闻。凤凰楼上吹急管,
  落日裴回肠先断。
  ◎卷.24【文德皇后挽歌】朱子奢
  神京背紫陌,缟驷结行輈。北去横桥道,西分清渭流。
  寒光向垄没,霜气入松楸。今日泉台路,非是濯龙游。
  ◎卷.25【大酺乐】张文收
  泪滴珠难尽,容残玉易销。倘随明月去,莫道梦魂遥。
  ◎卷.26【与琳法师】毛明素
  冶长倦缧绁,韩安叹死灰。始验山中木,方知贵不材。'''
        data_list = data.split('\n')
        return data_list


if __name__ == '__main__':
    poem = Poem()
    poem.find('花', '山', '水', '月', '风')

标签:salary,__,语言,Python,self,list,面向对象,exp,data
From: https://blog.csdn.net/taogumo/article/details/140607722

相关文章

  • 需要帮助使用 Selenium Python 单击 Microsoft Teams 按钮
    我将Python与Selenium结合使用,并自动登录MicrosoftTeams。进入后,弹出窗口显示我需要单击“立即切换”以切换到V2版本。我似乎无法使用SeleniumPython成功单击此按钮。谁能帮我自动点击这个按钮?这是我不成功的尝试:self.driver.find_element(By.CLASS_NAME,......
  • 三、面向对象
    面向对象面向对象编程(Object-OrientedProgramming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据抽象三大特性:◆封装◆◆封装的概念程序设计要追求“高内聚、低耦合”:高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅对外部暴露少......
  • 嵌入式C语言之流程控制语句
    一、程序的执行顺序1、自上向下,自左向右执行二、流程控制语句作用1、控制程序的执行顺序--控制条件--执行内容三、流程控制语句的分类1、选择结构--2条2、循环结构--3条3、控制语句--4条四、选择结构1、if选择结构(1)如果小刚的考试成绩大于90分,给予奖励①......
  • python接口自动化(四十)- logger 日志 - 下(超详解)
    宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介按照上一篇的计划,这一篇给小伙伴们讲解一下:(1)多模块使用logging,(2)通过文件配置logging模块,(3)自己封装一个日志(logging)类。可能有的小伙伴在这里会有个疑问一个logging为什么分两篇的篇幅......
  • Python面试题:使用NumPy进行高效数组运算
    NumPy是Python中进行高效数组运算的基础库。以下是一些示例,展示了如何使用NumPy进行高效的数组运算,包括创建数组、数组操作、数学运算以及一些高级操作。安装NumPy如果你还没有安装NumPy,可以通过以下命令进行安装:pipinstallnumpy示例代码1.创建数组import......
  • Python面试题:使用Matplotlib和Seaborn进行数据可视化
    使用Matplotlib和Seaborn进行数据可视化是数据分析中非常重要的一部分。以下示例展示了如何使用这两个库来创建各种图表,包括基本的线图、柱状图、散点图和高级的分类数据可视化图表。安装Matplotlib和Seaborn如果你还没有安装这两个库,可以使用以下命令进行安装:pipins......
  • 20、Python之容器:红楼主角都有谁?10行代码生成《红楼梦》词云图
    引言Python系列前面的文章中,我们介绍了Python中容器的基本使用,上一篇中,我们又重点介绍了Counter计数器的使用。这些介绍,应该足以应付日常的工作需求了。在今天的文章中,我想以词云图的生成这个综合案例,巩固一下前面关于容器、字典推导式、Counter的使用。同时,介绍两个比较好......
  • 使用snowflake.connector 3.0.3上的密钥对从python连接到snowflake
    我正在尝试使用Snowflake.connector包从我的Python代码连接到Snowflake。不幸的是,由于遗留代码,我只能在python3.7.3上使用Snowflake连接器版本3.0.3,并且无法升级我确实设法从我自己的计算机进行连接,使用:con=Snowflake.connector。连接(...私有密钥文件=......
  • python 文件(txt)操作
    我有一个txt文件,其中包含一列(大约2000个)单词。每个单词只用一个新行分隔。我想将所有这些单词存储在一个数组中words.txt文件的示例:applebananaorange我尝试过的代码:importrandomwithopen('E:/Code/learn/Projects/word-guessing-game/words.txt','r')a......
  • matplotlib与Python不兼容问题
    “我使用的是Matplotlib版本3.7.2。Anaconda的Spyder中的Python版本是3.8.18。当我运行importmatplotlib.pyplotasplt行时,出现错误module'matplotlib'hasnoattribute'rcParams'。当我尝试将Matplotlib和matplotlib.base包从当前的3.7.2版本升级到3.8......