• day 9


    1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

    def func(lis):
        print(lis[1::2])    #取偶数
        return lis[::2]     #取计数
        
    f=[1,2,3,4,5,6]
    print(func(f))

    2、写函数,判断用户传入的值(字符串、列表、元组)长度是否大于 5 。

    #两行就搞定
    def func2(lis):
        return len(lis)>5 #大于 5 则自动返回 True
    
    f=[1,2,3,4,5,6]
    print(func2(f))
    #比较 low 的方法
    def func2(lis):
        k = len(lis)
        if k > 5:
            print("大于 5")
        else:
            print("小于等于 5")
    
    f=[1,2,3,4,5,6]
    func2(f)

    3、写函数,检查传入列表的长度,如果大于 2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

    #无需判断列表长度是否大于 2 切片都会自动截取对应位置的值的
    def func3(lis):
        return lis[0:2]
    
    f=[1,2,3,4,5,6]
    print(func3(f))

    4、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数,并返回结果。

    #运用字典来储存和调用值
    def func4(str):
        dic = {'letter':0,"num":0,"space":0,'other':0}
        for i in str:
            if i.isalpha():
                dic['letter'] +=1
            elif i.isdigit():
                dic['num'] += 1
            elif i ==" ":
                dic['space'] += 1
            else:
                dic["other"] += 1
        return dic
    
    f="%123abc   qwe789%"
    print(func4(f))
    #比较 low 的 idea
    def func4(str):
        letter = 0
        num = 0
        space = 0
        other = 0
        for i in str:
            if i.isalpha():
                letter +=1
            elif i.isdigit():
                num += 1
            elif i ==" ":
                space += 1
            else:
                other += 1
        return(letter,num,space,other)
    
    f="%123abc   qwe789%"
    print(func4(f))

    5、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。

    def func5(space):
        if type(space) is str:    #参数是字符串
            for i in space:
                if i == " ":
                    return True
        if type(space) is list or type(space) is tuple: #参数为列表或元祖
            for i in space:
                if not i:
                    return True
        
    f="%123abc   qwe789%"
    print(func5(f))
    
    f2 = [1,2,3]
    print(func5(f2))
    
    f3 = (1,2,"",3)
    print(func5(f3))

    6、写函数,检查传入字典的每一个 value 的长度,如果大于 2 ,那么仅保留前两个长度的内容,并将新内容返回给调用者。

    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    def func6(d):
        for i in d:
            if len(d[i]) > 2:
                d[i] = d[i][:2]
        return d
    
    print(func6(dic))
    print(func6({'name':'ysg','age':'1234'}))

    7、写函数,接收两个数字参数,返回比较大的那个数字。

    #三元运算
    def func7(a,b):
        return a if a>b else b
       
    print(func7(56,23))
    #比较 low 的 idea
    def func7(a,b):
        if a>b:
            return a
        else:
            return b
    print(func7(23,56))

    8、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)

    #其实传入函数中的是三个参数
    #文件名 修改的前内容 修改后的内容
    def func8(filename,a,b):
        with open(filename,encoding='utf-8') as f,open('%s.bak'%filename,'w',encoding='utf-8')as f2:
            for line in f:
                if a in line:
                    line = line.replace(a,b)
                f2.write(line)
    
        import os
        os.remove(filename)     # 删除文件
        os.rename('%s.bak'%filename,filename)   # 重命名文件
                    
    func8('D:/py/log/test.txt','in','IN')
  • 相关阅读:
    埋点
    go 搭建web服务
    go的常见操作
    Zeus资源调度系统介绍
    支付系统中热点账户的性能问题
    redis
    集成Spring-Boot与gRPC,grpc-spring-boot-starter
    Spring Cloud灰度发布之Nepxion Discovery
    Spring Cloud Stream
    通过消息总线Spring Cloud Bus实现配置文件刷新(使用Kafka或RocketMQ)
  • 原文地址:https://www.cnblogs.com/ysging/p/10054595.html
Copyright © 2020-2023  润新知