1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def change(file_name,f_old,f_new):
import os
with open(file_name,'r',encoding='utf-8') as read_f, \
open('file_name.swp', 'w', encoding='utf-8') as write_f:
for line in read_f:
if f_old in line:
line = line.replace(f_old, f_new)
write_f.write(line)
os.remove(file_name)
os.rename('file_name.swp',file_name)
change('b.txt','alex','egon')
with open('b.txt',encoding='utf-8') as f:
print(f.read())
2、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数
def ro1(str):
numbers, letters, spaces, etc = 0,0,0,0
for i in str:
if i.isdigit():
numbers +=1
elif i.isalnum():
letters +=1
elif i.isspace():
spaces +=1
else:
etc +=1
return(numbers, letters, spaces, etc)
print(ro1('hello world 233 53 26'))
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def ro2(object):
if isinstance(object,str) or isinstance(object,list)\
or isinstance(object,tuple):
if len(object)>5:
return True
else:
return False
return None
print(ro2('hello world 233 53 26'))
print(ro2('hell'))
print(ro2(212))
4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
def ro3(obj):
ret = False
for i in obj:
if i =='':
ret =True
return ret
print(ro3('hello world'))
print(ro3(['1','2 ','','k','4 ','3']))
print(ro3((('x','1'),(''),(' z ',''))))
5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,
并将新内容返回给调用者。
def ro4(obj1):
if len(obj1) > 2:
del obj1[2:]
return obj1
print(ro4([1,2,'h','k','g',3]))
6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,
并将其作为新列表返回给调用者。
def ro5(obj2):
list = []
for i in range(1,len(obj2),2):
list.append(obj2[i])
return list
print(ro5([1,2,3,4,5,6,7,8,9,10]))
7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,
并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
方法一:
def ro6(obj3):
for i in obj3:
if len(obj3[i]) > 2:
obj3[i] = obj3[i][0:2]
return obj3
dic = {"k1": "v1v1", "k2": [11,22,33,44],"k3":"46846"}
print(ro6(dic))
方法二:
def ro7(obj4):
ret = {}
for k,v in obj4.items()
if len(v) > 2:
ret[k] = v[0:2]
else:
ret[k] = v