函数day1_homework

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

def func(l):
    return l[1::2]
f = func([1,23,5,6,4])
print(f)

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

def func(x):
    if len(x) > 5:
        return '长度大于五'
print(func([1, 23, 54, 2]))

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

def func(lis):
    return lis[:2]
print(func([1,2]))

5、写函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数,并返回结果。

def func(d):
    dic = {'数字':0,'字母':0,'空格':0,'其他':0}
    for i in d:
        if i.isdigit():
            dic['数字'] += 1
        elif i.isalpha():
            dic['字母'] += 1
        elif i.isspace():
            dic['空格'] += 1
        else:
            dic['其他'] += 1
    return dic
print(func('gajg3a434 3 a434$%'))

6、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。

def func(s):
    if type(s) is str and s:
        for i in s:
            if i == '':
                return True
    elif s and type(s) is list or type(s) is tuple:
        for i in s:
            if not i:
                return True
        return True
    elif not s:
        pass
print(func(1))

7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。PS:字典中的value只能是字符串或列表

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


print(dic_change(dic))

8、写函数,接收两个数字参数,返回比较大的那个数字。

def compare_sizes(x,y):
    return x if x > y else y


print(compare_sizes(5, 2))
 c = a if a>b else b   #三元运算
 变量 = 条件返回True的结果 if 条件 else 条件返回False的结果
必须要有结果
必须要有if和else
只能是简单的情况

9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。

def file_change(filename,old,new)
    with open(filename,encoding='utf-8') as f,open('%s.bak'%filename,'w',encoding='utf-8')as f:
        for line in f:
            if old in line:
                line = line.replace(old,new)
        f.write(line)

    import os
    os.remove(filename)
    os.rename('%s.bak'%filename,filename)
file_change('天空','jsdhf','dhf')
posted @ 2020-11-14 20:41  北~屿  阅读(105)  评论(0)    收藏  举报