作业03.18

1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作

def file_modified(file_name,content_1,content_2):
    '''修改文件内容,file_name文件名,content_1文件修改前的内容,content_2文件修改后的内容'''
    import os
    with open(rf'{file_name}',mode='rt',encoding='utf-8') as f,\
            open(rf'{file_name}.swap',mode='wt',encoding='utf-8') as f1:
        for i in f:
            res=i.replace(f'{content_1}',f'{content_2}')
            f1.write(res)
    os.remove(f'{file_name}')
    os.rename(f'{file_name}.swap',f'{file_name}')

file_modified('a.txt','啊啊','哇哈哈')

2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

def num_1(s):
    num=0
    letter=0
    blank=0
    other=0
    for i in s:
        if i.isdigit():
            num+=1
        elif i.isalpha():
            letter+=1
        elif i.isspace():
            blank+=1
        else:
            other+=1
    print(f'''
    数字:{num}个
    字母:{letter}个
    空格:{blank}个
    其他:{other}个''')
a="fd s '\ 1 '2 ,2 2f f`~+-*// ds"
num_1(a)

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def len_1(l):
    if len(l)>=5:
        print('是')
    else:
        print('否')
a={'a':1,'b':3,'v':4,}
len_1(a)

4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def len_2(z,x,*args):
    print(*args)
a=['a','b','c','e','t','g']
len_2(*a)

5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def odd_num(l):
    '''检查从传入名称的列表的奇数索引元素返回给调用者'''
    l1=[]
    for i in l[1::2]:
        l1.append(i)
    print(l1)
ass=[1,2,3,4,5,8,7,9,5,74,8,1,4,4]
odd_num(ass)

6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def modify_dict(d):
    for i in d:
        res=d[i][:2]
        d[i]=res
    print(d)

modify_dict(dic)
posted @ 2020-03-18 20:52  迎着阳光  阅读(122)  评论(0编辑  收藏  举报