day11-函数基础作业

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

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

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

    def str_1(str1: str, str2: str):
        dict1 = {}
        for i in range(len(str1)):
            dict1[str1[i]] = str2[i]
        return dict1
    
    
    dict1 = str_1('abcmn', '一二三四五')
    print(dict1)
    
  2. 写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串

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

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

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

    def new_join(list1, str1):
        str2 = ''
        for i in list1[:-1]:
            str2 += str(i) + str1
        return str2 + list1[-1]
    list1 = [10, 20, 30, 'abc']
    str1 = '+'
    str3 = new_join(list1, str1)
    print(str3)
    
  3. 写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

    def new_upper(str1):
        for i in str1:
            if not 'A' <= i <= 'Z':
                return False
        else:
            return True
    str1 = 'AMNDS'
    str2 = new_upper(str1)
    print(str2)
    
  4. 写一个clear函数,清空指定列表。

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

    def new_list(list1):
        for i in list1[0:]:
            del list1[0]
        return list1
    list1 =  [10, 20, 30, 'abc']
    list1 = new_list(list1)
    print(list1)
    
  5. 写一个reverse函数,将列表中的元素逆序

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

    def new_list(list1):
        list2 = []
        for i in list1[::-1]:
            list2.append(i)
        return list2
    list1 =  [10, 20, 30, 'abc']
    list1 = new_list(list1)
    print(list1)
    
    
    
  6. 写一个replace函数,将字符串中指定的子串替换成新的子串

    原字符串: ‘abc123abc哈哈哈uui123’ 旧子串: ‘123’ 新子串: ‘AB’

    结果: ‘abcABabc哈哈哈uuiAB’

    def new_replace(str1, str2, str3):
        str4 = str1.split(str2)
    
        str5 =  str3.join(str4)
    
        return str5
    str1 ='abc123abc哈哈哈uui123'
    str2 ='123'
    str3 ='AB'
    str = new_replace(str1, str2, str3)
    print(str)
    
  7. 写一个函数,可以获取任意整数的十位数

    123 -> 2

    82339 -> 3

    9 -> 0

    -234 -> 3

    def num_1(num1):
        x = num1 // 10 % 10
        return x
    
    num = num_1(123)
    print(num)
    
  8. 写一个函数实现数学集合运算符 & 的功能,求两个集合的公共部分:

    集合1: {1, 2, 3} 集合2: {6, 7, 3, 9, 1}

    结果:{1, 3}

    def set_1(set1, set2):
        set3 = set()
        for i in set1:
            if i in set2:
                set3.add(i)
        return set3
    set1 = {1, 2, 3}
    set2 = {6, 7, 3, 9, 1}
    s = set_1(set1, set2)
    print(s)
    
  9. 写一个函数实现属于自己的字典update方法的功能,将一个字典中的键值对全部添加到另外一个字典中

    字典1: {‘a’: 10, ‘b’: 20} 字典2: {‘name’: ‘张三’, ‘age’: 18} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, name’: ‘张三’, ‘age’: 18}

    字典1: {‘a’: 10, ‘b’: 20} 字典2:{‘a’: 100, ‘c’: 200} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, ‘c’: 200}

    def new_update(dict1, dict2):
        for key in dict2:
            dict1.setdefault(key, dict2[key])
    
    
        return dict1
    dict1 = {'a': 10, 'b': 20}
    dict2 = {'name': '张三', 'age': 18}
    a = new_update(dict1, dict2)
    print(a)
    
  10. 写一个函数判断指定数是否是水仙花数

    12321 -> True

    2332 -> True

    9876789 -> True

    1232 -> False

    def new_num(num):
        n = str(num)
        if n[:] == n[::-1]:
            return True
        else:
            return False
    
    
    num = 1232
    a = new_num(num)
    print(a)
    
    
    
    
  11. 写一个函数判断指定数是否是完数(比较难)

    完数:各个真因数的和等于这个数本身

    例如:6是完数,6的真因子为1、2、3,1+2+3等于6,所以6是完数

    ​ 28是完数,28的真因子:1、2、4、7、14,1+2+4+7+14等于28,所以28是完数

    ​ 12不是完数:12的真因子:1、2、3、4、6,1+2+3+4+6不等于12

    def new_num(num):
        j = 0
        for i in range(1, num):
            if num % i == 0:
                j += i
        if j == num:
            return True
        else:
            return False
    
    
    num = 21
    print(new_num(num))
    
    
    
上一篇:[.Net]使用Soa库+Abp搭建微服务项目框架(一):Abp与DDD相关知识回顾


下一篇:四、数据类型 11.切片copy和dict_copy