day11-函数基础作业(完善版)

  1. 写一个函数,实现maketrans的功能,将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值

    第一个字符串: ‘abcmn’ 第二个字符串:‘一二三四五’

    结果:{‘a’: ‘一’, ‘b’: ‘二’, ‘c’: ‘三’, ‘m’: ‘四’, ‘n’: ‘五’}

    # 第一版
    def maketrans(str1:str, str2:str) -> dict:
        dict1 = {}
        for x in range(len(str1)):
            dict1[str1[x]] = str2[x]
        return dict1
    
    
    # 完善版
    def maketrans(key_str:str, value_str:str) -> dict:
        """
        将两个字符串转换成一个字典
        :param key_str: 提供键的字符串
        :param value_str: 提供值得字符串
        :return: 新的字典
        """
        len1 = len(key_str)
        len2 = len(value_str)
        result = {}
        for index in range(min(len1, len2)):
            result[key_str[index]] = value_str[index]
        return result
    
    
    str1 = 'abccd'
    str2 = '一二三四五'
    dict1 = maketrans(str1, str2)
    print(dict1)
    
  2. 写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串

    序列: [10, 20, 30, ‘abc’] 字符串: ‘+’ 结果:‘10+20+30+abc’

    序列: ‘abc’ 字符串: ‘–’ 结果:‘a–b--c’

    注意:序列中的元素可以不是字符串哟

    # 第一版
    def join(seq, str1:str) -> str:
        seq = list(seq)
        result = ''
        for x in seq[:-1]:
            result += str(x) + str1
        return result + str(seq[-1])
    
    
    # 完善版
    def join(seq, str1:str) -> str:
        """
        可以将任意序列中的元素以指定的字符串连接成一个新的字符串。
        :param seq: 任意序列
        :param str1: 指定字符串
        :return: 新的字符串
        """
        seq = list(seq)
        result = ''
        for x in seq[:-1]:
            result += str(x) + str1
        return result + str(seq[-1])
    
    list1 = 'abc'
    str1 = '---'
    print(join(list1, str1))
    
  3. 写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

    # 第一版
    def uppper(str1:str):
        for x in str1:
            if not 'A' <= x <= 'Z':
                return False
        else:
            return True
        
    
    # 完善版
    def uppper(str1:str):
        """
        判断指定字符串是否是纯大写字母字符串。
        :param str1: 指定字符串
        :return: 判断结果
        """
        for x in str1:
            if not 'A' <= x <= 'Z':
                return False
        return True
    
    
    print(uppper('ABCDE'))
    print(uppper('ada123'))
    print(uppper('Ada123'))
    
  4. 写一个clear函数,清空指定列表。

    注意:功能是将原列表清空,不产生新的列表

    # 第一版
    def clear(list1:list):
        for x in list1[:]:
            list1.remove(x)
        return list1
    
    
    # 完善版
    def clear(list1:list):
        """
        清空指定列表。
        :param list1:指定列表
        :return:清空后的列表
        """
        for x in list1[:]:
            list1.remove(x)
        return list1
    
    
    list1 = [1, 2, 3, 4, 5]
    print(clear(list1))
    
  5. 写一个reverse函数,将列表中的元素逆序

    两种方法:1.产生一个新的列表 2.不产生新的列表,直接修改原列表元素的顺序

    # 方法一
    def reverse(list1:list) -> list:
        new_list1 = []
        for x in list1[::-1]:
            new_list1.append(x)
        return new_list1
    
    # 方法一完善版
    def reverse(list1:list):
        """
        将列表中的元素逆序
        :param list1: 原列表
        :return: 新列表
        """
        return list1[::-1]
    
    
    # 方法二完善版
    def reverse(list1: list):
        """
        将列表中的元素逆序
        :param list1: 原列表
        :return: None
        """
        len1 = len(list1)
        for index1 in range(len1 // 2):
            index2 = len1 - index1 - 1
            list1[index1], list1[index2] = list1[index2], list1[index1]
    
    
    list1 = [1, 2, 3, 4, 5]
    reverse(list1)
    print(list1)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值