3.18作业

作业

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

def modify(sou_file, old_data, new_data):
    """
    :param sou_file:需要修改文件的路径
    :param old_data:文件中需要修改的数据
    :param new_data:修改后的新数据
    :return:
    """
    l = []
    with open(sou_file, mode='r', encoding='utf-8') as f1:
        for line in f1:
            res = line.replace(old_data, new_data)
            l.append(res)
    with open(sou_file, mode='w', encoding='utf-8') as f2:
        for line in l:
            f2.write(line)


modify('a.txt', '上中下', '优良差')

a.txt文件内容:

成绩上中下
成绩上中下
成绩上中下
成绩上中下

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

def count_func(inp_str):
    '''
    计算字符串中不同字符的个数
    :param inp_str:用于输入字符串
    :param digits_nb:数字的个数
    :param blank_nb:空格的个数
    :param alp_nb:字母的个数
    :param else_nb:其他字符的个数
    :return: 
    '''
    digits_nb = 0
    alp_nb = 0
    blank_nb = inp_str.count(' ')
    else_nb = 0
    for item in inp_str:
        if item.isdigit():
            digits_nb += 1
        elif item.isalpha():
            alp_nb += 1
        elif item != ' ':
            else_nb += 1
    print('数字:{}个  字母:{}个  空格:{}个  \n
    其他字符:{}个'.format(digits_nb, alp_nb, blank_nb, else_nb))


count_func('abcd 1.11#!@ 1231')
#结果:数字:7个  字母:4个  空格:2个  其他字符:4个

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

def len_judge(argu):
    '''
    :param argu:传入的参数
    :return: result: 长度是否大于5的判断结果
    '''
    result = len(argu) > 5
    print(result)


len_judge('asfbasfasdf')
len_judge([1, 2])
len_judge((1, 2, 3, 4, 5, 6))
#结果:
True
False
True

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

def len_judge(list1):
    '''
    :param list1:传入的参数
    :return: list2: 列表前两位的内容
    '''
    list2 = []
    if len(list1) > 2:
        list2.append(list1[0])
        list2.append(list1[1])
    return list2


print(len_judge([1, 2, 3, 4]))
#结果:[1, 2]

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

def odd_index(argu):
    '''
    :param argu:传入的参数
    :return: result: 长度是否大于5的判断结果
    '''
    list1 = []
    for item in argu:
        if argu.index(item) % 2 == 1:
            list1.append(item)
    return list1


print(odd_index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
# 结果:[2, 4, 6, 8, 10]

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

dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}


def len_judge(dic):
    '''
    :param argu:传入的参数
    :return: result: 长度是否大于5的判断结果
    '''
    for kk, vv in dic.items():
        if len(vv) > 2:
            new_v = vv[0:2]
            dic[kk] = new_v
    return dic
print(len_judge(dic))
#结果:{'k1': 'v1', 'k2': [11, 22]}
posted @ 2020-03-18 23:36  风起千寻  阅读(138)  评论(0编辑  收藏  举报