函数参数作业

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

import os

def batch_alter(*args,**kwargs):
    """
    批量修改文件,使用方法:
    batch_alter("文件名1","文件名2","文件名3",**{"原内容1"="修改后的内容",原内容1"="修改后的内容")
    """
    for file in args:
        des_file=".{}.swap".format(file)
        with open(file,"r",encoding="utf-8") as read_f,\
            open(des_file,"w",encoding="utf-8") as write_f:
            for line in read_f:
                for k in kwargs:
                    if k in line:
                        line=line.replace(k,kwargs[k])
                write_f.write(line)
        os.remove(file)
        os.rename(des_file,file)

batch_alter("a.txt","b.txt",**{"lisi":"lxx","zhangsan":"wangwu"})

 

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

def cal_count(*args):
    """计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数"""
    num=[]
    pha=[]
    sp=[]
    other=[]
    for i in args:
        i=str(i)
        if i.isdigit():
            num.append(i)
        elif i.isalpha():
            pha.append(i)
        elif i == " ":
            sp.append(i)
        else:
            other.append(i)
    print("数字个数:{},字母个数:{},空格个数:{},其他字符个数:{}".format(len(num),len(pha),len(sp),len(other)))

 

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

def len_inp(*args):
    for i in args:
        if len(i) < 5:
            print("{}长度小于等于5".format(i))
        elif len(i) == 5:
            print("{}长度等于5".format(i))
        else:
            print("{}长度大于5".format(i))
len_inp("hello world",[1,2,3],(4,5,6))

 

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

def str_extraction(*args):
    for i in args:
        if len(i) > 2:
            print(i[:2])
        else:
            print(i)
str_extraction([1,2,3],[4,5])

 

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

def back_inp(*args):
    l_back=[]
    for i in args:
        for j in range(len(i)):
            if j % 2 == 1:
                l_back.append(i[j])
    print(l_back)
back_inp([1,2,3],[4,5],["a","b","c","d","e"])

 

6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

def back_2(**kwargs):
    l_new=[]
    for i in kwargs:
        if len(kwargs[i]) > 2:
            l_new.append(kwargs[i][:2])

    print(l_new)
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
back_2(**dic)

 

posted @ 2020-03-18 15:14  耗油炒白菜  阅读(177)  评论(0编辑  收藏  举报