day10-函数基础作业

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

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

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

    def str_change_dict(str1, str2):
        dict1 = {}
        count1 = 0
        for i in str1:
            dict1[i] = list(str2)[count1]
            count1 += 1
    
        print(dict1)
    
    
    str_change_dict('123', 'dgr')
    
  2. 写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串

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

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

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

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

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

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

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

    def clear_me(list1):
        for i in list1.copy():
            list1.remove(i)
        print(list1)
    
    
    clear_me([1, 2, 3, 5, 6])
    
  5. 写一个reverse函数,将列表中的元素逆序

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

    # 1.产生一个新的列表
    def reverse_order_1(list1):
        list2 = []
        for i in list1.copy():
            x = list1.pop()
            list2.append(x)
        print(list2)
    
    
    reverse_order_1([1, 2, 'a', 'r', 'A'])
    
    # 2.不产生新的列表,直接修改原列表元素的顺序
    def reverse_order_2(list1):
        for index in range(len(list1)):
            list1.insert(index, list1.pop())
    
    
    reverse_order_2([1, 2, 'a', 'r', 'A'])
    
    
  6. 写一个replace函数,将字符串中指定的子串替换成新的子串

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

    结果: ‘abcABabc哈哈哈uuiAB’

    def replace_me(str1, str2, str3):
        list1 = str1.split(str2)
        list2 = []
        for i in str(list1):
            if i == ',':
                list2 += list(str3)
            else:
                list2 += i
        str4 = ''
        for j in list2:
            if j == '[' or j == ']' or j == "'" or j==' ':
                pass
            else:
                str4 += j
        print(str4)
    
    
    replace_me('abc123abc哈哈哈uui123', '123', 'AB')
    
  7. 写一个函数,可以获取任意整数的十位数

    123 -> 2

    82339 -> 3

    9 -> 0

    -234 -> 3

    def gain_ten(int1):
        if len(str(int1)) == 1:
            print(0)
        else:
            i = fabs(int1) // 10 % 10
            print(int(i))
    
    
    gain_ten(-589)
    
  8. 写一个函数实现数学集合运算符 & 的功能,求两个集合的公共部分:

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

    结果:{1, 3}

    def set_pub(set1, set2):
        set3 = set1 & set2
        print(set3)
    
    
    set_pub({1, 2, 3}, {6, 7, 3, 9, 1})
    
  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 update_me(dict1, dict2):
    for i in dict2:
        dict1[i] = dict2[i]
    print(dict1)


update_me({'a': 10, 'b': 20}, {'name': '张三', 'age': 18})
上一篇:第2关:字符串操作 - 物质名称缩写


下一篇:Windows平台编译openssl-0.9.8k库(32位、64位)