# 1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def func():
import os
file_name = input("请输入文件名称:").strip()
data1 = input("请输入要修改的原内容:").strip()
data2= input("请输入修改后的新内容:").strip()
with open(file_name,mode='rt',encoding='utf-8')as f1:
with open('new.txt', mode='wt', encoding='utf-8')as f2:
for line in f1.readlines():
res = line.strip().replace(data1,data2)
f2.write('{}\n'.format(res))
os.remove(file_name)
os.rename('new.txt',file_name)
# 2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def f1(data):
if type(data).__name__ == 'str':
dic = {'数字':0,'字母':0,'空格':0,'其他':0}
res = str(data)
for i in res:
if i.isdigit():
dic['数字'] += 1
elif i.isspace():
dic['空格'] += 1
elif i.isalpha():
dic['字母'] += 1
else:
dic['其他'] += 1
print(dic)
f1('hnd9y327asbsdao-*/ -naljsdn')
# # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def f2(obj):
if type(obj).__name__ == 'str' or type(obj).__name__ == 'list' or type(obj).__name__ == 'tuple':
if len(obj) > 5:
print(f'{obj}的长度大于5')
else:
print(f'{obj}的长度小于等于5')
f2([1,2])
f2(123456) # 无结果
# # 4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def f3(obj): # 只能传入可迭代类型
if type(obj).__name__ == 'list':
info = []
if len(obj) > 2:
info.append(obj.pop(0))
info.append(obj.pop(0))
return info
res1 = f3(1)
res2 = f3(['1ada',123,567])
print(res1,res2)
# 5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def f4(l):
if type(l).__name__ == 'list' or type(l).__name__ == 'tuple':
l1 = []
count = 0
while count < len(l):
if count % 2 ==1 :
l1.append(l[count])
count+=1
else:
count+=1
return l1
res = f4([1,2,3,4,5,6,7])
print(res)
# 6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
def f5(dic):
if type(dic).__name__ == 'dict':
for i in dic:
if len(dic[i]) > 2:
if type(dic[i]).__name__ == 'list' or type(dic[i]).__name__ == 'str':
dic[i] = dic[i][0:2]
return dic
res = f5({"k1": "v1v1", "k2": [11,22,33,44]})
print(res)