Datawhale ----7 days for Python(任务四)

【任务四】

学习内容
1.实现一个函数get_max_i_word(filename,i),返回文件(由datawhale提供)中最多的几个频次的字母的列表,并将i设为5,打印出来字母的列表组成的字符串。

def get_max_i_word(filename,i=5):
    """或许文件中字母出现次数最多的前i个组成的字符串"""
    dict_letter = {}          #定义一个空字典
    lower_letters = [chr(a) for a in range(97,123)]       #获取小写字母列表
    upper_letters = [chr(b) for b in range(65,91)]        #获取大写字母列表
    letters = upper_letters + lower_letters
    with open(filename,encoding='utf-8') as f:
        contents = f.read()
        contents = contents.strip()                 #删除字符串中所有空格
        for letter in letters:
            #print('字母' + letter + '个数为:' + str(contents.count(letter)))
            dict_letter[letter] = contents.count(letter)       #获取每个字母出现的次数,添加到字典
    sort = sorted(dict_letter.items(),key=lambda x:x[1],reverse=True)      #根据次数由小到大排序,转化为列表
    result = ''
    for s in sort:         #遍历列表
        result += s[0]    #获取列表中元组的第二个值
    if isinstance(i,int):      #判定i是否为整数
        return result[:i]
    else:
        return None
filename = 'data.txt'
result = get_max_i_word(filename,5)
print(result)
#输出结果
'whale'

2.附加题:通过字母的提示寻找相关图片,并用matplotlib和numpy或者matplotlib和PIL(pillow)展示出来这张图片

3.开放题:按你自己的想法设计一个类或多个类,设计继承关系,可以只给出抽象的结构,但必须是实际问题的抽象,并解释自己为什么这么设计,最好能有拓展性和实现了部分核心代码。可以参考github上的python项目

class Dota():
    """模拟Dota游戏"""
    def __init__(self,nickname,life_value,attack_power):
        self.nickname = nickname
        self.life_value = life_value
        self.attack_power = attack_power
	def attack(self,enemy):
        enemy.life_value -= self.attack_power
 
class Kael(Dota):
    """英雄Kael的技能以及各自攻击力对敌方造成的伤害"""
    def __init__(self,nickname,life_value,attack_power):
        super().__init__(nickname,life_value,attack_power)
        self.skills = {'ice':20,'thunder':25,'fire':30}
    def attack(self,enemy):
        super.attack(enemy)
         
class Jugg(Dota):
        """英雄Jugg的技能以及对敌方造成的伤害"""
    def __init__(self,nickname,life_value,attack_power):
        super().__init__(nickname,life_value,attack_power)
        self.skills = {'skill_1':50,'skill_2':80}
    def attack(self,enemy):
        super.attack(enemy)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值