14、作业3月18号

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

def fanc(path,before,later):
    import os
    with open('path','rb')as f1,\
        open('b.txt','wb') as f2:
        for x in f1:
            f2.write(x.replace(before,later))
    os.remove(path)
    os.rename('b.txt',path)
fanc('a.txt','a','b')

 


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

def count(*args):
    dic_num=dict{'number':0,
                 'alpha':0,
                 'space':0,
                 'other':0}
    for n in *args:
        if n.isdigit():
            dic_num['nember']+=1:
        elif n.isalpha():
            dic_num[alpha] += 1:
        elif n.isspace():
            dic_num[space] += 1:
        else:
            dic_num[other] += 1:
    print(dic_num)
count(*args)

 

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

  def length(user_inp):
        if len(user_inp) > 5:
            print('长度大于5')
        else:
            print('长度小于5')

    user_inp = input('请输入:')
    length(user_inp)

 

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

def new_list(list1):
    if len(list1) > 2:
        list1 = list1[:2]
        return list1
    else:
        return '列表长度小于2'
list1 = [1,2,3]
res = new_list(list1)
print(res)

 

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

def new_list(list1):
    list2 = []
    for i,v in enumerate(list1):
        if i % 2 == 1:
            list2.append(list1[i])
    return list2
list1 = [1,2,3,4]
res = new_list(list1)
print(res)

 

6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

def dic_new(dic):
    for key in dic:
        if len(dic[key]) > 2:
            dic[key] = dic[key][:2]
    return dic
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
res = dic_new(dic)
print(res)

 

posted @ 2020-03-18 21:07  疏星淡月  阅读(139)  评论(0编辑  收藏  举报