老男孩第十四期 python 自动化运维第三周 函数

'''
参数要在非固定参数和关键字参数前面
实参优先匹配参数,其次是关键字参数,
如果形参被无固定值赋值,那么在进行制定赋值就会报错
    def test(i,*args):
        print(i)
        print(args)
    test(1,2,3,i=3)#报错
        
'''
print('test:')
def test(i,j,*args,**kwargs):
    print('i: %s'%i)
    print('j: %s'%j)
    print('args: %s'% str(args))#数组不能直接格式化,需要进行字符串转换,但是字典不用
    print('kwargs: %s'% kwargs)
test(1,2,3,4,5,k=2)
# 简单
def test1():
    print('简单')
    print('123')
test1()
# 参数
def test2(i):
    print('参数')
    print(i)
test2('11')
# 多参数
def test3(i,i1):
    print('多参数')
    print(i,i1)
test3(1,2)
#非固定参数
def test4(i,*args):
    print('非固定参数')
    print(i)
    print(args)
test4(555,11,11,2,3,4)
#关键字参数
def test5(i,**kwarg):
    print('关键字参数')
    print(i)
    print(kwarg)
test5(name=123,i=122,set=11)
#局部变量
def test6():
    print('局部变量')
    a = 1
    print(a)
test6()
# print(a) #代码报错,变量不存在
#全局变量
def test7():
    print('全局变量')
    global s
    s=123
    print(s)
test7()
print(s)

#匿名函数
print('匿名函数')
n = 2
f = lambda n:n*n
print(f(n))
#匿名函数应用
#求出列表每一个值得平方
print('匿名函数的应用')
list_1 = [1,2,3,4,5,6,7]
a = map(lambda n:n*n,list_1)
[print(i) for i in a]


#高阶函数(一个函数接受另一个函数作为参数,这种函数就称之为高阶函数)
print('高阶函数')
def add(x,y,f):
    return f(x) + f(y)
res = add(3,-6,abs)
print(res)

  

posted on 2021-01-23 10:01  成前无人知成后有人明  阅读(72)  评论(0)    收藏  举报

导航