3.18作业
作业
1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def modify(sou_file, old_data, new_data):
"""
:param sou_file:需要修改文件的路径
:param old_data:文件中需要修改的数据
:param new_data:修改后的新数据
:return:
"""
l = []
with open(sou_file, mode='r', encoding='utf-8') as f1:
for line in f1:
res = line.replace(old_data, new_data)
l.append(res)
with open(sou_file, mode='w', encoding='utf-8') as f2:
for line in l:
f2.write(line)
modify('a.txt', '上中下', '优良差')
a.txt文件内容:
成绩上中下
成绩上中下
成绩上中下
成绩上中下
2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def count_func(inp_str):
'''
计算字符串中不同字符的个数
:param inp_str:用于输入字符串
:param digits_nb:数字的个数
:param blank_nb:空格的个数
:param alp_nb:字母的个数
:param else_nb:其他字符的个数
:return:
'''
digits_nb = 0
alp_nb = 0
blank_nb = inp_str.count(' ')
else_nb = 0
for item in inp_str:
if item.isdigit():
digits_nb += 1
elif item.isalpha():
alp_nb += 1
elif item != ' ':
else_nb += 1
print('数字:{}个 字母:{}个 空格:{}个 \n
其他字符:{}个'.format(digits_nb, alp_nb, blank_nb, else_nb))
count_func('abcd 1.11#!@ 1231')
#结果:数字:7个 字母:4个 空格:2个 其他字符:4个
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def len_judge(argu):
'''
:param argu:传入的参数
:return: result: 长度是否大于5的判断结果
'''
result = len(argu) > 5
print(result)
len_judge('asfbasfasdf')
len_judge([1, 2])
len_judge((1, 2, 3, 4, 5, 6))
#结果:
True
False
True
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def len_judge(list1):
'''
:param list1:传入的参数
:return: list2: 列表前两位的内容
'''
list2 = []
if len(list1) > 2:
list2.append(list1[0])
list2.append(list1[1])
return list2
print(len_judge([1, 2, 3, 4]))
#结果:[1, 2]
5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def odd_index(argu):
'''
:param argu:传入的参数
:return: result: 长度是否大于5的判断结果
'''
list1 = []
for item in argu:
if argu.index(item) % 2 == 1:
list1.append(item)
return list1
print(odd_index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
# 结果:[2, 4, 6, 8, 10]
6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
def len_judge(dic):
'''
:param argu:传入的参数
:return: result: 长度是否大于5的判断结果
'''
for kk, vv in dic.items():
if len(vv) > 2:
new_v = vv[0:2]
dic[kk] = new_v
return dic
print(len_judge(dic))
#结果:{'k1': 'v1', 'k2': [11, 22]}