python之函数习题

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

def func(filename,old,new):
    import os
    with open('filename',mode='rt',encoding='utf-8') as f1,\
        open('.filename.swap',mode='wt',encoding='utf-8') as f2:
        for line in f1:
            if old in line:
                line = line.replace(old,new)

            f2.write(line)

    os.remove(filename)
    os.rename('.filename.swap',filename)
func('c.txt','amanda','beautiful')

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

def func(n):
     d = {
    
    'num':0,'charter':0,'space':0,'others':0}
     for i in n:
         if i.isdigit():
             d['num'] += 1
         elif i.isalpha():
             d['charter'] +=1
         elif i.isspace():
             d['space'] +=1
         else:
             d['others'] +=1
     return d

 m = func('ada123 wdas2934 e3..!!??')
 print(m)

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

def func(m):
     if isinstance(m, (str, list, tuple)):
         if len(m) > 5:
             print(True)
         else:
             print(False)

 func('hello world')
 func([1, 2, 3])
 func((1, 2, 3, 4, 5))

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

def func(*args):
    for i in args:
        if len(i) > 2:
            print(i[0:2])
        else:
            print(i)

func([1,2,3,4,5,6])

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

def func(n):
    return n[::2]

print(func([1,2,3,4,4,5,6,7,]))
print(func((1,2,3,4,5,5,6,7,8,9,)))

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

def func(dic):
    d = {
    
    }
    for k,v in dic.items():
        if len(v) > 2:
            d[k]=v[0:2]

    return d

print(func({
    
    "k1": "v1v1", "k2": [11,22,33,44]}))

猜你喜欢

转载自blog.csdn.net/weixin_47237915/article/details/114969275