zoukankan      html  css  js  c++  java
  • 函数的参数

    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))
  • 相关阅读:
    写日志
    读写excel
    python安装模块
    数据库
    日志和关键字查找
    时间戳
    os 模块
    图-最小生成树算法之Kruskal及其Java实现
    图-图的表示、搜索算法及其Java实现
    前端实现list排序
  • 原文地址:https://www.cnblogs.com/avery-w/p/14193050.html
Copyright © 2011-2022 走看看