3、python--第三天练习题

#1、简述普通参数、指定参数、默认参数、动态参数的区别

#1.普通参数就是传入的函数,没有默认值
def f(a):
    a = a + 1
    return a
print(f(3))

#2.指定参数
def f(a,b,c):
    d = a + b + c
    return d
print(f(2,4,5))     #没有指定参数就会按照顺序分别赋值给a,b,c
print(f(b=3,a=2,c=1))   #指定参数的值,不按照原来的顺序

#3.默认参数
def f(a,b=3):   #在函数里指定了默认值
    c = a + b
    return c
print(f(3))     #传参数的时候可以传一个,赋值给a;b就等于原来的值
print(f(4,7))   #按照顺序赋值,a=4,b=7就被重新赋值

#4.动态参数
#动态参数 *args和**kwargs 是指当我们需要传入多个参数时,他们就代表多个参数,就不需要在括号里指定多个参数了。
def f(a,*args,**kwargs):
    print(a,args,type(args),kwargs,type(kwargs))

d=f(22,33,44,k1=55,k2=66)

#2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def sum(count):
    number = 0
    string = 0
    space = 0
    other = 0
    for i in count:
        if i.isdigit():
            number += 1
        elif i.isalpha():
            string += 1
        elif i.isspace():
            space += 1
        else:
            other +=1
    return '数字:'+str(number) + ';字母:'+ str(string) + ';空格:'+ str(space) +';其他:' + str(other)

print(sum('my name is fana 1234567'))

#3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def sum(string):
    if isinstance(string,(str,tuple,list,dict)):
        if len(string) >= 5:
            return '大于或等于5'
        else:
            return '小于5'
    return None

#4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
def space(args):
    ret = '没有空内容'
    if len(args) == 0:
        ret = '有空内容'
    for a in args:
        if a.isspace():
            ret = '有空内容'
    return ret
print(space('fan a fan'))

#5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def lis(args):
    if len(args) > 2:
        return args[:2]
    if len(args) <= 2:
        return args[0::]

print(lis([1,2]))

#6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def lis(args):
    lis2 = []
    for i in args:
        if args.index(i) % 2 == 1:
            lis2.append(i)
    return lis2

a = [1,2,3,4,5,6,7]
print(lis(a))

#7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
fana = {"k1": "v1v1", "k2": [11,22,33,44]}
#PS:字典中的value只能是字符串或列表
def dic(args):
    dic2 = {}
    for k,v in args.items():
        if len(v) > 2:
            dic2[k] = v[:2]
         else:
            dic2[k] = v
    return dic2

fana = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
print(dic(fana))
posted @ 2019-09-03 22:25  博客萨斯州  阅读(310)  评论(1编辑  收藏  举报