DAY10课下作业
1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批量修改操作。
#a.txt内容:egon
def modify_file(filename,old,new):
import os
with open('a.txt','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('a.txt')
os.rename('.bak.swap','a.txt')
modify_file(r'E:\Program Files (x86)\Python3.7\练习\a.txt','egon','alex')
2、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数。
def check_str(msg):
res={'num':0,'string':0,'space':0,'other':0,}
for s in msg:
if s.isdigit(): res['num']+=1
elif s.isalpha(): res['string']+=1
elif s.isspace(): res['space']+=1
else: res['other']+=1
return res
res=check_str('1.success is from diligence')
print(res)
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def func(n):
print('判断传入对象的长度是否大于5')
if len(n) >= 5:
return True
else:
return False
content = input('请输入您要判断的内容:')
print(func(content))
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def func(n):
if len(n) > 2:
n=n[0:2]
else:
n=n
return n
print(func(['a',1,'b',2,'c',3,'d']))
5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func(n):
return n[::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只能是字符串或列表。
dic = {'k1': 'v1v1', 'k2': [11, 22, 33, 44]}
def func(dic):
n = {}
for keys, value in dic.items():
if len(value) > 2:
n[keys] = value[0:2]
else:
n[keys] = value
return n
print(func({'k1': 'v1v1', 'k2': [11, 22, 33, 44]}))