2022年4月24号第二周第7天作业

  1. 编写一个函数,交换指定字典的key和value。

      例如:dict1={'a':1, 'b':2, 'c':3}  -->  dict1={1:'a', 2:'b', 3:'c'}  
    
            
    def dict_exchange(old_dict: dict) -> dict:
        """
        交换指定字典的key和value
        :param old_dict: 要交换的原字典
        :return: 完成交换过后的新字典
        """
        new_dict = {value: key for key, value in old_dict.items()}
        return new_dict
    
  2. 编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串

       例如: 传入'12a&bc12d-+'   -->  'abcd'  
            
            
    def get_alphabet(old_str: str) -> str:
        """
    	提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串 
        :param old_str: 要进行提取的字符串
        :return: 完成提取后的新字符串只包含字母
        """
        new_str = ''.join([x for x in old_str if x.islower() or x.isupper()])
        return new_str
    
  3. 写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母

      例如: 'abc' -> 'Abc'   '12asd'  --> '12asd'
            
            
    def cap_first_alpha(old_str: str) -> str:
        """
        如果字符串的首字母是小写字母就将指定字符串的首字母变成大写字母
        :param old_str: 提供一个字符串
        :return: 转换过后的字符串
        """
        new_str = (old_str.replace(old_str[0], chr(ord(old_str[0]) - 32))) if old_str[0].islower() else old_str
        return new_str
    
  4. 写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束

       例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
            字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
                        
                        
    def endswith1(str_demo: str, end_str: str) -> bool:
        """
        判断一个字符串是否已指定的字符串结束
        :param str_demo: 需要判断的字符串
        :param end_str: 结束字符或字符串
        :return: 布尔值
        """
        return str_demo[-len(end_str):] == end_str
    
  5. 写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串

       例如: '1234921'  结果: True
             '23函数'   结果: False
             'a2390'    结果: False
                
                
    def isdigit1(str_demo: str) -> bool:
        """
        判断一个字符串是否是纯数字字符串   
        :param str_demo: 需要判断的字符串
        :return: 布尔值, 如果是纯数字True, 否则False
        """
        return [x for x in str_demo if not x.isdigit()] == []
    
  6. 写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母

        例如: 'abH23好rp1'   结果: 'ABH23好RP1'   
                
                
    def str_upper(str_demo: str) -> str:
        """
        将一个字符串中所有的小写字母变成大写字母
        :param str_demo: 需要改变的字符串
        :return: 改变过后的字符串
        """
        new_str = ''
        for x in str_demo:
            if 'a' <= x <= 'z':
                new_str += chr(ord(x) - 32)
            else:
                new_str += x
        return new_str
    
  7. 写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充

       例如: 原字符:'abc'  宽度: 7  字符:'^'    结果: '^^^^abc'
            原字符:'你好吗'  宽度: 5  字符:'0'    结果: '00你好吗'
                            
                            
    def str_rjust(origin_str: str, length: int, symbol: str) -> str:
        """
        创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充  
        :param origin_str: 原字符串
        :param length: 指定长度
        :param symbol: 右对齐字符
        :return: 填充过后的字符串
        """
        new_str = ''
        new_str = symbol * (length - len(origin_str)) + origin_str
        return new_str
    
  8. 写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1

       例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0]  元素: 1   结果: 0,4,6  
            列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']  元素: '赵云'   结果: 0,4
            列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']  元素: '关羽'   结果: -1         
                        
                        
    def list_index(element, list_demo: list) -> str:
        """
        统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
        :param element: 需要统计的元素
        :param list_demo: 提供一个列表
        :return: 有指定元素的下标
        """
        indexs = ''
        if element not in list_demo:
            return '-1'
        else:
            for i in range(len(list_demo)):
                if element == list_demo[i]:
                    indexs += str(i) + ','
            return indexs[:-1]
    
  9. 写一个自己的len函数,统计指定序列中元素的个数

        例如: 序列:[1, 3, 5, 6]    结果: 4
             序列:(1, 34, 'a', 45, 'bbb')  结果: 5  
             序列:'hello w'    结果: 7
                    
                    
    def len1(container) -> int:
        """
        统计指定序列中元素的个数
        :param container: 序列
        :return: 序列中元素的个数
        """
        counts = 0
        for _ in container:
            counts += 1
        return counts
    
  10. 写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值

       例如: 序列:[-7, -12, -1, -9]    结果: -1   
            序列:'abcdpzasdz'    结果: 'z'  
            序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98}   结果: 98
                    
                    
    def max_value(sequence):
        """
        获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
        :param sequence: 指定序列
        :return: 序列中的最大值
        """
        if type(sequence) == dict:
            max_value = 0
            for key, values in sequence.items():
                max_value = values
                break
            for key, values in sequence.items():
                if values > max_value:
                    max_value = values
            return max_value
        else:
            sequence = list(sequence)
            max_value = sequence[0]
            for i in sequence:
                if i > max_value:
                    max_value = i
            return max_value
    
  11. 写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在

        例如: 序列: (12, 90, 'abc')   元素: '90'     结果: False
             序列: [12, 90, 'abc']   元素: 90     结果: True     
                        
    
    def included(sequence, element):
        """
        判断指定序列中,指定的元素是否存在  
        :param sequence: 序列
        :param element: 需要判断的元素
        :return: 布尔值,如果元素存在于序列中返回True, 否则False
        """
        for i in sequence:
            if i == element:
                return True
        else:
            return False
    
  12. 写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串

        例如: 原字符串: 'how are you? and you?'   旧字符串: 'you'  新字符串:'me'  结果: 'how are me? and me?'
                            
                            
    def str_replace(ori_str: str, old_str: str, new_str: str) -> str:
        """
        将指定字符串中指定的旧字符串转换成指定的新字符串   
        :param ori_str: 指定字符串
        :param old_str: 旧字符串
        :param new_str: 替换的新字符串
        :return: 替换完成后的字符串
        """
        count = ori_str.count(old_str)
        replaced_str = ''
        index = 0
        while len(replaced_str) < len(ori_str) + (len(new_str) - len(old_str)) * count:
            if ori_str[index:index+len(old_str)] == old_str:
                replaced_str += new_str
                index += (len(new_str))
            else:
                replaced_str += ori_str[index]
            index += 1
        return replaced_str
    
  13. 定义一个自己的update函数,将一个字典中所有的键值对添加到另外一个字典中

def update_dict(add_dict: dict, ori_dict: dict) -> dict:
    """
    将一个字典中所有的键值对添加到另外一个字典中
    :param add_dict: 要添加的字典
    :param ori_dict: 原字典
    :return: 添加过后的新字典
    """
    for key, value in add_dict.items():
        ori_dict.setdefault(key, value)
    return ori_dict
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值