day11-函数基础作业

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

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

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

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

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

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

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

    def str2(str3,a):
        str1 = str3[0]
        for i in range(1,len(str3)):
            str1 += a
            str1+=str3[i]
        print(str1)
    str3 = input('输入字符串:')
    a = input('输入连接字符:')
    str2(str3,a)
    
    ###############################################
    def  new_str1(list1, str2):
        str4=str(list1[0])
        for x in range(1,len(list1)):
            a = str(list1[x])
            str4 += str2
            str4+=a
        print(str4)
    list1 = [10,20,30,'abc']
    str2 = '+'
    new_str1(list1,str2)
    
  3. 写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

    def upper1(str1):
        for i in str1:
            if not ('A' <=i <='Z'):
                print('不是纯大写')
                break
            else:
                print('纯大写')
    str1 = input('请输入字符串:')
    upper1(str1)
    
  4. 写一个clear函数,清空指定列表。

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

    def clear_list(list1):
        while list1==[]:
            del list1[0]
            return list1
    list1 = [1, 2, 4, 6, 1, 3, 1, 5]
    print(clear_list(list1))
    
  5. 写一个reverse函数,将列表中的元素逆序

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

    def new_list(list1):
        list2 = []
        for i in range(-1,-len(list1)-1,-1):
            list2.append(list1[i])
        print(list2)
    new_list([1,2,3,4,5,6,7,8,9])
    
    ########################################################
    def new_list(list1):
        for i in range(len(list1)):
            a=list1.pop(-1)
            list1.insert(i,a)
        print(list1)
    new_list([1,2,3,4,5,6,7,8,9])
    
  6. 写一个replace函数,将字符串中指定的子串替换成新的子串

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

    结果: ‘abcABabc哈哈哈uuiAB’

    def new_str1(str2,str3,str4):
        d = str()
        i = 0
        while i < len(str2):
            if str2[i] == str3[0] and str3 == str2[i:i+len(str3)]:
                d += str4
                i += len(str3)
            else:
                d += str2[i]
                i += 1
        print(d)
    str2 = input('输入字符串:')
    str3= input('目标字符:')
    str4= input('替换内容:')
    new_str1(str2,str3,str4)
    
    
    
    
  7. 写一个函数,可以获取任意整数的十位数

    123 -> 2

    82339 -> 3

    9 -> 0

    -234 -> 3

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

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

    结果:{1, 3}

    def and1(j1,j2):
        j3=j1&j2
        print(j3)
    and1({'s',3,1,'g',6,'s',1},{1,2,3,4,5,6})
    
    
    
    
  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 dict1(dict2:dict,dict3:dict):
        list1 = list(dict2.keys())
        list2 = list(dict2.values())
        for i in range(len(list1)):
            dict3.setdefault(list1[i],list2[i])
        print(dict3)
    dict1({'a': 10, 'b': 20},{'name': '张三', 'age': 18})
    
  10. 写一个函数判断指定数是否是回文数

    12321 -> True

    2332 -> True

    9876789 -> True

    1232 -> False

    def judge(num):
        for i in range(len(num)//2):
            if num[i]!=num[-(i+1)]:
                print('不是回文数')
                break
        else:
            print('是回文数')
    judge('1234321')
    
    
    
  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

    
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值