python函数练习题

时间:2023-02-23 11:17:26

1.普通参数、指定参数、默认参数、动态参数的区别

普通参数即普通形式的传参。

def f(a):
    a = a+1
    return a

ret = f(3)

指定参数,按顺序插入参数,或者通过“=”指定参数。

def f(a,b,c)
    e = a+b+c
#默认按顺序指定参数
f(1,2,3)
#或者自己指定参数
f(c=1,b=2,a=3)

默认参数,即无需指定,函数默认给定。

动态参数

 *args  是指当我们需要传入多个参数时,可以用*args代表多个参数,不用分别在括号里指定多个参数
 **kwargs, 当我们需要传入键值对类型的参数时就可以用**kwargs
 
def f(a,*args,**kwargs)

##万能模式,可以插入单个参数,多个参数,键值对参数
 

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

def f1(a):
    num_num = 0 #数字个数
    num_ABC = 0  #字母个数
    num_space = 0  #空格个数
    num_else = 0 #其他个数
    for i in a:
        if i.isdigit():
            num_num +=1
        elif i.isalpha():
            num_ABC +=1
        elif i.isspace():
            num_space +=1
        else:
            num_else +=1
    return num_num,num_ABC,num_space,num_else
li = f1("zifuchuan")
print(li)

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

def f3(arg):
    if len(arg)>5:
        return True
    else:
        return False

ret = f2({'a':'b'})
print(ret)

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

def f4(*args):
    for i in args:
        if i == "":
            return True
    return False

ret = f2([11,22,'',13])
print(ret)

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

 
def f5(*args):
   li = list()
   count = 0
   if len(arg)>2:
        for i in args:
            count +=1
            li.append(i)
            if count ==2:
                break
        return li
   else:
       return arg
ret = f2(11,22,33)
print(ret)
 

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

 
def f6(*args):
    count = 0
    li = []
    for i in args:
        count +=1
        if count%2 ==1:
            li.append(i)
    return li

ret = f6(11,22,33,44)
print(ret)
 

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

def f7(arg):
    ret = {}
    for key,value in arg.items():
        if len(value) > 2:
            ret[key] = value[0:2]
        else:
            ret[key] = value
    return  ret

dic = {"k1": "v1v1", "k2": [11, 22, 33, 44],"k3":"12"}
r = f7(dic)
print(r)

8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

def f8(a1,a2,count):
    count +=1
    a3 = a1 + a2
    if count ==10:
        print(a1)
        return
    f8(a2,a3,count)
f8(0,1,0)