1.1 理解函数
不太清楚有没有没有函数的编程语言,至少我接触的几种都是有的。前人正常情况不会发明没有用的东西,如果有,也应该早已淘汰。而事实是函数在编程语言中是普遍的。那就一定是因为的确解决了普遍性的问题。对于函数,我的理解是:封装了一段有某种功能的代码,在需要时可以直接拿来使用。基于此,接下来就学习一下前人的套路。
1.2 定义、调用函数
语法:
def 函数名( 形参,形参... ):   #不要丢掉冒号:哦~
   
    代码块                    
   
想要使用定义好的函数,即调用函数怎么办呢?
函数名(实参,实参...)  #对,你没有看错,就是这么简单~
1.3 参数
1.3.1 形参和实参
定义时函数名后边括号里的参数就是形参,调用时括号内输入的参数就是实参。
定义形参时可以指定默认值。
1.3.2 实参的传递方式
- 必备参数 我还是习惯称为位置参数,好理解。 形参的位置对应实参的位置。
- 关键字参数 可以不按照形参定义的顺序传递,直接根据参数名传递(可与位置参数混合使用,但要将位置参数写前面)
- 默认参数 调用函数时,实参未传递,则使用默认值(定义函数时预设的值)
- 不定长参数 比如要计算任意多个数的和,总不能再函数上改来改去吧,这时不定长参数就可以大展身手了
- 参数解包
* 形参前加星号可以存放多个参数;
传入元组时,形参若有两个。实参前加*,可以传递一个参数,但是元组的元素要与形参数量一致;
传入字典时,加**,不传入键数据。
1.4 return 语句(返回值)
返回值就是函数执行以后返回的结果,可以通过 return 来指定函数的返回值。
如果只写return 或者 不写return,则相当于return None
1.5 文档字符串
理解为函数内的注释就可以了,可以用help()查看函数是干嘛的。
1.6 lambda 表达式(匿名函数)
一种快速定义单行的最小函数 (一次性函数,精简代码)
语法:
lambda 参数列表 : 返回值 (语法糖)
1.7 作用域与命名空间
作用域
作用域就是变量生效的区域
全局变量&局部变量
顾名思义,函数外部的就是全局变量,函数内部的就是局部变量,也叫函数作用域
在函数内部申明全局变量,用 global 声明
命名空间
命名空间,就是变量存储的位置(本质上是字典)
locals() 获取当前作用域的命名空间
1.8 递归
递归,就是俄罗斯套娃呀~
递归式函数,在函数中自己调用自己!
递归的两个条件:
1.基线条件 问题可以被分解为小问题,满足基线条件,递归就不再执行
2.递归条件 将问题继续分解的条件
循环与递归可以互相代替。
1.9 高阶函数
python中,函数是一等对象。因此可以进行函数是编程。
高阶函数(符合至少一个条件)
①接收一个或多个函数作为参数
②将函数作为返回值返回
filter()
map()
sort()
1.10 闭包(也是一种高阶函数)
将函数作为返回值返回,叫闭包。通过闭包可以创建一些只有当前函数能访问的变量
1.11 装饰器(高阶函数)
不修改原代码的情况下对函数进行扩展
注:总结的是脉络,暂不写代码示例。
 
                   
                   
                   
                   本文深入解析函数编程的基础概念,涵盖函数定义与调用、参数类型、返回值、文档字符串、匿名函数、作用域、递归、高阶函数、闭包及装饰器等内容,帮助读者掌握函数编程的核心技巧。
本文深入解析函数编程的基础概念,涵盖函数定义与调用、参数类型、返回值、文档字符串、匿名函数、作用域、递归、高阶函数、闭包及装饰器等内容,帮助读者掌握函数编程的核心技巧。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   3万+
					3万+
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            