5.函数的基本

本文详细介绍了Python函数的定义、调用、参数传递、作用域以及递归和匿名函数的使用。通过实例展示了默认参数、可变参数、关键字参数的用法,并探讨了闭包和函数作用域的概念。此外,还涵盖了函数在数据处理中的应用,如排序和映射操作。
摘要由CSDN通过智能技术生成

##函数定义 /调用
#def 关键字   func函数名
##def func():
##    print('你好')   #print  打印的内容不能赋值给变量
##def func1():
##    return'aaa'    #return 打印的内容可以赋值给变量
##def func2(x,y):   #( )里面可以传参数 
##    z = x*y
##    return z    #return表示关键字

#函数参数( )括号里面传参 先传必备  在默认 在不定长参数
##参数有必备参数  默认参数(不传值就自己有一个值)  不定长参数
##必备参数   调用必须传入
##   (x,y)
##默认参数(不传值就用自己默认值,传值就改)  
##def func(x,y=112):
##    print(x)
##    print(y)
##    return x,y
###不定长参数(有元组\字典) 想传多少数据都可以
####(可传可不传  不传默认为空元组和空字典)
##字典传入时,必须是键值对的形式,且只能最后传入,定义时也只能放在最后面。
##参数传入顺序:必备参数,默认参数,不定长参数


##def func1(x,y=1,*args,**kwargs):    #**kwargs 表示接收是键值对形式 不是就args接收
##    print(x)
##    print(y)
##    print(args)
##    print(kwargs)   #赋值语句会自动变成为键值对  a=110,b=223   {'a': 110, 'b': 223}
####    return x,y,args,kwargs
##
###拆包
##    return x,y,args,kwargs
#用一个变量接收
#a= func1(1,2,3,4,6,'a','b','d','f',r=100)
##x,y,z,d =a     元组拆包(几个值对应几个变量)
 
#函数作用域
##var = 100            #全局变量(定义在文件里面的)
##def func ():         #函数内部可以访问外部的变量
##    global var  ##global声明全局变量(就是得到其他人同意然后去修改)
##    var+=10
##    print(var)  ##定义在函数外面的变量函数里面可以访问的, 但是不能修改
                     ##声明一个全局变量  就可以修改了

##def func():
##    var =100  #函数内部定义的变量,外面不能访问和使用
##    return var     ##直接用return返回出来用变量接收


##def func():    ##局部变量()  在函数里面
##    var = 100
##    def func1():
##        nonlocal var    ##nonlocal  声明局部变量(就是跟里面的人说好了)
##        var+=1
##        print(var)
##    def func2():
##        print(var)
##    return func1 , func2
##
##
##
###闭包(外层函数返回内层函数的函数体( 嵌套函数)
##def func():      #把内层函数返回出去   外面就可以直接使用
##    var = 100     #可以在外部修改函数内部的变量值
##    def add():
##        nonlocal var   
##        var+=1
##        return var
##    def down():
##        nonlocal var
##        var -=1
##        return var
##    return add, down

##递归函数  (阶乘)
def res (n):
    if n<=1:
        return 1
    else:
##        print(f'现在是第{n}圈')
##        res(n-1)
        return n*res(n-1)    ##第二次为四


##匿名函数
g = lambda x:x*100
#g变量  lambda关键词  x参数   x*100条件
#排序
li = [1,2,3,4,'a','c','b','5']
li.sort(key =lambda x :str(x))
add_lambda = lambda x,y:x+y 

print(add_lambda(10,20))

add_lambda = lambda x=3,y=6 : x+y
print(add_lambda(20))

print(add_lambda(12,22))

li = [i for i in range(0,100)]
#filter过滤器
##def func(x):
##    if x%2==0:    # 取偶数
##        return x
##f=filter (func,li)    #需要转类型      list
##f = filter (lambda x:x%2==0,li)   #用匿名函数

# map  统一计算 
##def func (x):
##    return x*10
##f = map(func ,li)
f = map(lambda x:x*10,li)   #使用匿名函数

    


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值