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)