day14作业

# 1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
def func():
    import os
    file_name = input("请输入文件名称:").strip()
    data1 = input("请输入要修改的原内容:").strip()
    data2= input("请输入修改后的新内容:").strip()
    with open(file_name,mode='rt',encoding='utf-8')as f1:
        with open('new.txt', mode='wt', encoding='utf-8')as f2:
            for line in f1.readlines():
                res = line.strip().replace(data1,data2)
                f2.write('{}
'.format(res))
    os.remove(file_name)
    os.rename('new.txt',file_name)

# 2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def f1(data):
    if type(data).__name__ == 'str':
        dic = {'数字':0,'字母':0,'空格':0,'其他':0}
        res = str(data)
        for i in res:
            if i.isdigit():
                dic['数字'] += 1
            elif i.isspace():
                dic['空格'] += 1
            elif i.isalpha():
                dic['字母'] += 1
            else:
                dic['其他'] += 1
        print(dic)
f1('hnd9y327asbsdao-*/ -naljsdn')

# # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def f2(obj):
    if type(obj).__name__ == 'str' or type(obj).__name__ == 'list' or type(obj).__name__ == 'tuple':
        if len(obj) > 5:
            print(f'{obj}的长度大于5')
        else:
            print(f'{obj}的长度小于等于5')
f2([1,2])
f2(123456) # 无结果

# # 4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def f3(obj): # 只能传入可迭代类型
    if type(obj).__name__ == 'list':
        info = []
        if len(obj) > 2:
            info.append(obj.pop(0))
            info.append(obj.pop(0))
            return info
res1 = f3(1)
res2 = f3(['1ada',123,567])
print(res1,res2)

# 5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def f4(l):
    if type(l).__name__ == 'list' or type(l).__name__ == 'tuple':
        l1 = []
        count = 0
        while count < len(l):
            if count % 2 ==1 :
                l1.append(l[count])
                count+=1
            else:
                count+=1
        return l1
res = f4([1,2,3,4,5,6,7])
print(res)

# 6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
def f5(dic):
    if type(dic).__name__ == 'dict':
        for i in dic:
            if len(dic[i]) > 2:
                if type(dic[i]).__name__ == 'list' or type(dic[i]).__name__ == 'str':
                    dic[i] = dic[i][0:2]
        return dic
res = f5({"k1": "v1v1", "k2": [11,22,33,44]})
print(res)
原文地址:https://www.cnblogs.com/yding/p/12520043.html