Python之简单函数练习(Day30)
1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def modify_file(filename,old,new): import os with open(filename,'r',encoding='utf-8') as read_f,\ open('.bak.swap','w',encoding='utf-8') as write_f: for line in read_f: if old in line: line=line.replace(old,new) write_f.write(line) os.remove(filename) os.rename('.bak.swap',filename) modify_file('/Users/jieli/PycharmProjects/爬虫/a.txt','alex','SB')
2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def check_str(msg): res = { 'num':0, 'zimu':0, 'space':0, 'other':0 } for i in msg: if i.isdigit(): res['num'] += 1 elif i.isalpha(): res['zimu'] += 1 elif i.isspace(): res['space'] +=1 else: res['other'] += 1 return res res = check_str('hello name:aSB passowrd:alex3714') print(res)
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def the_length(s): if len(s) > 5: return True else: return False print(the_length('andahdasdd')) print(the_length([1,3,4,5])) print(the_length((1,'a',3,[2,6,7])))
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
def func(li): if len(li) > 2 : return li[0:2] else: return li li=func([1,3,455,6,7,2,5,]) print(li)
5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
def func2(li): new = li[1::2] return new print(func2([1,3,4,'5',6,33]))
6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func3(dic): d={} for k,v in dic.items(): if len(v) > 2: d[k]=v[0:2] return d print(func3({'k1':'v1v1','k2':[11,22,33,44],}))
有一种能力,是持续不断的努力