函数基础*****

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

 1 def modify_file(filename,old,new):
 2     import os
 3     with open(filename,'r',encoding='utf-8')as read_f,\
 4         open('.bak.swap','w',encoding='utf-8')as write_f:
 5         for line in read_f:
 6             if old in line:
 7                 line=line.replace(old,new)
 8                 write_f.write(line)
 9     os.remove(filename)#注意缩进
10     os.rename('.bak.swap',filename)#注意缩进
11 modify_file('abc.txt','alex','piao')

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

 1 def check_str(msg):
 2     res={
 3         'num':0,
 4         'string':0,
 5         'space':0,
 6         'other':0
 7     }
 8     for s in msg:
 9         if s.isdigit():
10             res['num']+=1
11         elif s.isalpha():
12             res['string']+=1
13         elif s.isspace():
14             res['space']+=1
15         else:
16             res['other']+=1
17     return res
18 res=check_str('hello name:alex password:123alex')
19 print(res)

 

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

def length(str):
    if len(str)>5:
        print('长度大于5')
    else:
        print('长度不大于5')
length('egon  ')

 

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

def judge_list(seq):
    if len(seq)>2:
        seq=seq[0:2]
    return seq
print(judge_list([0,1,2,3,112]))

 

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

def func(res):
    return res[1::2]
print(func([1,2,3,4,5,6,7,8,9]))

 

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

1 def func(dic):
2     d={}
3     for k,v in dic.items():
4         if len(v) > 2:
5             d[k]=v[0:2]
6     return d
7 print(func({'k1':'abcdef','k2':[1,2,3,4],'k3':('a','b','c')}))

 

posted @ 2018-09-25 19:01  ChuckXue  阅读(151)  评论(0编辑  收藏  举报