作业09
1.写函数,用户传入修改的文件名与要修改的内容,执行函数,完成批量修改操作。
def change_file(filename,oldfile,newfile): 三个参数为文件名,需要替换的内容,要替换的新内容
with open(filename,'rt',encoding='utf-8') as read_f,\ filename接收下面的user_info.txt
open('user_info1.txt',mode='wt',encoding='utf-8') as write_f:
for line in read_f:
if oldfile in line: 查找需要替换掉的内容
line = line.replace(oldfile,newfile) 替换中。。。
write_f.write(line) 开始写入新文件
change_file('user_info.txt','alex','DSB') 三个参数与上面对应
2.写函数,计算传入字符串中的数字、字母、空格、及其他出现的次数
def count(msg): msg要接收一段话
res = {
'num':0,
'alpha':0,
'space':0, 定义空字典来暂时计次
'other':0
}
for line in msg:
if line.isdigit():
res['num']+=1 for 循环判断
elif line.isalpha():
res['alpha']+=1
elif line.isspace():
res['space']+=1
else:
res['other']+=1
return res 此处计次结果要有返回值
res = count('=====----- 12345,go mountain fight tiger -----=====') 输入msg
print(res)
3.写代码,判断用户传入的对象(字符串、列表、元组)的长度是否大于5
def count(msg):
if len(msg) > 5:
return False
else:
return True
res = count( )
print(res)
4.写函数,检查传入列表的长度,如果长度大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def inp(msg):
if len(msg) > 2:
msg = msg[0:2] 读取默认步长为1,顾头不顾尾所以只读索引0,1
return msg
print(inp(['tongtong','baobeitong','klf','kk']))
['tongtong', 'baobeitong']
5.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func2(seq):
return seq[::2] 读取seq以索引0开始步长为2依次取值,再return
print(func2([1,2,3,4,5,6,7]))
6.写函数,检查字典每一个value的长度,如果大于2,只保留前两位长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def checkd(dic):
d = {} 要返回新内容,先定义空字典
for k,v in dic.items():for循环取出key,value的值
if len(v) > 2: 判断value的长度
d[k] = v[0:2] 取出value的前两位
return d
print(checkd({"k1": "v1v1", "k2": [11,22,33,44]}))

浙公网安备 33010602011771号