day10作业

写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def alter_file(file,old,new):
    import os
    with open(file,mode='r',encoding='utf-8') as rf,
            open('swap.txt',mode='w',encoding='utf-8') as wf:
        for line in rf:
            if old in line:
                line = line.replace(old,new)
            wf.write(line)
    os.remove(file)
    os.rename('swap.txt',file)

alter_file('a.txt','a','L')
写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def check_str(str):
    num = 0
    alp= 0
    space = 0
    other = 0
    for s in str:
        if s.isdigit():
            num+=1
        elif s.isalpha():
            alp+= 1
        elif s.isspace():
            space +=1
        else:
            other+=1
    return num,alp,space,other

print(check_str(' hnfkk134,,gh'))
#结果:(3, 7, 1, 2)

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

def len1(obj):
    if len(obj)>5:
        return True
    else:
        return False

print(len1([1,2,4,'gh',333]))
#False
写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def fun1(seq):
    if len(seq)>2:
        seq=seq[0:2]
    return seq

print(fun1([1,2,33,'msj']))
#[1, 2]
写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
def fun2(seq):
    new = []
    for i in range(len(seq)):
        if i%2 ==1 :
            new.append(seq[i])
    return new
print(fun2((1,2,3,4,5,6,7,8,9,0)))
#[2, 4, 6, 8, 0]
6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def fun3(dic):
    for k in dic:
        if len(dic[k])>2:
            dic[k]=dic[k][:2]
    return dic
print(fun3({"k1": "v1v1", "k2": [11,22,33,44]}))
#{'k1': 'v1', 'k2': [11, 22]}
原文地址:https://www.cnblogs.com/msj513/p/9699651.html