python学习之函数的参数作业

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

def modify(file_name,old,new):
    import os
    if not os.path.exists(r'{}'.format(file_name)):
        print('你要修改的文件不存在。')
        return
    with open(r'{}'.format(file_name),'rt',encoding='utf-8') as f1,\
        open('.a.txt.swap','wt',encoding='utf8') as f2:
        for line in f1:
            content = line.replace(old,new)
            f2.write(content)
    os.remove(r'{}'.format(file_name))
    os.rename('.a.txt.swap',r'{}'.format(file_name))

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

def count_str(str_1):
    if not str_1:
        print('字符串不能为空')
        return
    num_dic = {'number':0,'alphabet':0,'space':0,'others':0}
    for i in str_1:
        if i.isdigit():num_dic['number'] += 1
        elif i.isalpha():num_dic['alphabet'] += 1
        elif i.isspace():num_dic['blank'] += 1
        else:num_dic['others'] += 1
    return num_dic

res = count_str('22eee   tyh23-=-=?/@!')
print(res)    #{'number': 4, 'alphabet': 6, 'space': 3, 'others': 8}

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

def len_morethan_five(my_args):
    if type(my_args) not in [str,list,tuple]:
        print('传入的对象必须是字符串、列表、元组中的一种。')
        return
    if len(my_args)>5:
        return True
    return False

res = len_morethan_five([3,4,5,5,5,5])
print(res)

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

def my_list(my_args):
    if not isinstance(my_args,list):
        print('必须传入一个列表。')
        return
    if len(my_args)>2:
        return my_args[:2]
    else:
        return my_args

res = my_list([1,2,3,4])
print(res)

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

def odd_index_list(my_args):
    if type(my_args) not in [list,tuple]:
        print('必须传入列表或元组。')
        return
    new_list = []
    for i in range(len(my_args)):
        if i % 2 == 1:
            new_list.append(my_args[i])
    return new_list

res = odd_index_list([2,3,4,5,6,7,8,9,10,11])
print(res)

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

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

def check_value_len(my_args):
    if not isinstance(my_args,dict):
        print('必须传入一个字典。')
        return
    for value in my_args.values():
        if type(value) not in [str,list]:
            print('字典中的value只能是字符串或列表。')
            return
    for k,v in my_args.items():
        if len(v)>2:
            my_args[k] = v[:2]
    return my_args

res = check_value_len({"k1": "v1v1", "k2": [11,22,33,44]})
print(res)   #{'k1': 'v1', 'k2': [11, 22]}

猜你喜欢

转载自www.cnblogs.com/leilijian/p/12521068.html
今日推荐