当你发现自己的才华撑不起野心时,就请安静下来学习吧。

Personal site

↑点击传送

3.18作业

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

import os
def modify_file(file_path,old,new):
    with open(f'{file_path}','r',encoding='utf-8') as f1,\
        open(f'{file_path}.swap','w',encoding='utf-8') as f2:
        for line in f1:
            f2.write(line.replace(old,new))

    os.remove(f'{file_path}')
    os.rename(f'{file_path}.swap',f'{file_path}')
modify_file('a.txt','lxx','steady')

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

def check_str(msg):
    res={
        'num':0,
        'string':0,
        'space':0,
        'other':0,
    }
    for s in msg:
        if s.isdigit():
            res['num']+=1
        elif s.isalpha():
            res['string']+=1
        elif s.isspace():
            res['space']+=1
        else:
            res['other']+=1
    return res

res=check_str('hello name:aSB passowrd:alex3714')
print(res)

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

def check_length(str_list_tuple):
    if len(str_list_tuple) > 5:
        print(f'{str_list_tuple}的长度大于5')

    else:
        print('太短了,不行!')

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

def func1(seq):
    if len(seq) > 2:
        seq=seq[0:2]
    return seq
print(func1([1,2,3,4]))

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

def func2(seq):
    return seq[::2]
print(func2([1,2,3,4,5,6,7]))

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

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func3(dic):
    d={}
    for k,v in dic.items():
        if len(v) > 2:
            d[k]=v[0:2]
    return d
print(func3({'k1':'abcdef','k2':[1,2,3,4],'k3':('a','b','c')}))
posted @ 2020-03-19 22:35  Joab-0429  阅读(247)  评论(0编辑  收藏  举报