• 函数的参数


    1. 用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作

    def func(name, **kwargs):
        import os
        if not os.path.exists(r'{}'.format(name)):
            print('文件路径输入错误')
            return
        with open(r'{}'.format(name), 'rb') as f1, 
                open(r'{}.swap'.format(name), 'wb') as f2:
            for line in f1:
                line = line.decode('utf-8')
                if kwargs['old_content'] in line:
                    line = line.replace(kwargs['old_content'], kwargs['new_content'])
                    f2.write(line.encode('utf-8'))
                else:
                    f2.write(line.encode('utf-8'))
            else:
                print('修改完毕')
        os.remove(r'{}'.format(name))
        os.rename('{}.swap'.format(name), '{}'.format(name))
    
    
    func('a.txt', old_content='裤衩', new_content='大裤衩')

    2. 计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

    def func(str_ori):
        dic = {
            'number': 0,
            'letter': 0,
            'space': 0,
            'others': 0
        }
        for str in str_ori:
            if ord(str) in range(65,91) or ord(str) in range(97,123):
                dic['letter'] += 1
            elif str.isdigit():
                dic['number'] += 1
            elif ord(str) == 32:
                dic['space'] += 1
            else:
                dic['others'] += 1
        return(dic)
    
    res = input('请输入查询字符串:')
    rec = func(res)
    print('数字为{},字母为{},空格为{},其他为{}'.format(rec['number'],rec['letter'],rec['space'],rec['others']))

    3. 判断用户传入的对象(字符串、列表、元组)长度是否大于5

    def func(letter, *args, **kwargs):
        args = list(args)
        print(args)
        print(kwargs)
        str_0 = '<5'
        list_0 = '<5'
        dict_0 = '<5'
        n = 0
        while n < 3:
            if len(letter) > 5:
                str_0 = '>5'
                letter = '1'
            elif len(args) > 5:
                list_0 = '>5'
                args = []
            elif len(kwargs) > 5:
                dict_0 = '>5'
            n += 1
        print('字符串长度{},列表长度{},字典长度{}'.format(str_0, list_0, dict_0))

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

    def func(*args):
        # args = list(args)
        # print(args)
        if len(args) > 2:
            x,y = args[0:2]
            return x,y
        else:
            x,y = args
            return x,y
    
    x,y = func(*[1,2])
    print(x,y)
    
    def morethan_two(x,y,*args):
        return x,y
    
    x,y = morethan_two(*[1,2,3,4,5,6])
    print(x,y)

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

    def func(j):
        print(j,type(j))
        l = []
        for i in range(len(j)):
            if i % 2 == 0:
                continue
            else:
                l.append(j[i])
        return l
    
    print(func([1,2,3,4,5]))
    print(func((1,2,3,4,5)))

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

    def func(dic):
        for i in dic:
            if len(dic[i]) > 2:
                dic[i] = dic[i][0:2]
        # else:
        #     dic[i] = dic[i]
        return dic
    
    
    dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
    print(func(dic))
  • 相关阅读:
    java1234初学maven
    解决maven创建web项目卡死在generator插件(转)
    maven下载速度慢的解决方法(转)
    git分支
    git基础
    oracle分析函数与over()(转)
    Oracle开窗函数 over()(转)
    Oracle计算时间函数(对时间的加减numtodsinterval、numtoyminterval) (转)
    selenium使用中遇到的问题
    selenium运行火狐报错FirefoxDriver : Unable to connect to host 127.0.0.1 on port 7055
  • 原文地址:https://www.cnblogs.com/avery-w/p/14193050.html
Copyright © 2020-2023  润新知