python基础05day--函数

一 函数知识体系

什么是函数?
为什么要用函数?
函数的分类:内置函数与自定义函数
如何自定义函数
语法
定义有参数函数,及有参函数的应用场景
定义无参数函数,及无参函数的应用场景
定义空函数,及空函数的应用场景
调用函数
如何调用函数
函数的返回值
函数参数的应用:形参和实参,位置参数,关键字参数,默认参数,*args,**kwargs
高阶函数(函数对象)
函数嵌套
作用域与名称空间
装饰器
迭代器与生成器及协程函数
三元运算,列表解析、生成器表达式
函数的递归调用
内置函数
面向过程编程与函数式编程

二 函数基础

一 引子

 1 1 什么是函数
 2     函数1就是具备某一功能的工具
 3 
 4 
 5 2 为什么要用函数
 6     1  程序的组织结构不清晰,可读性差
 7     2  代码冗余
 8     3  可扩展性差
 9 
10 3 如何用函数
11     函数的使用必须遵循的原则:先定义,后调用
12         修理工事先准备工具的过程即函数的定义
13         修理工遇到应用场景拿来工具就用即函数的调用
14 
15     语法:
16         def 函数名(参数1,参数2,...):
17             """
18             文档注释
19             """
20             code1
21             code2
22             code3
23             ......
24             return 返回值
25 
26         def:定义函数的关键字
27         函数名: 就相当于一个变量名,指向函数的内存地址,
28                 注意:函数的内存地址()就可以出发函数体代码的执行
29 
30         参数: 参数是函数的调用者为函数体代码传值的媒介,在python中函数的参数无需声明类型
31         """文档注释""" : 推荐写上
32         代码块:就是函数体功能的具体实现
33         return 返回值 :函数体代码块运行的成果
34 
35 
36     函数的使用分为两个阶段:
37         定义阶段: 只检测语法,不执行代码
38         调用阶段:运行函数体代码
39             def foo():
40                 xxx
41                 print()

二 定义函数

三 调用函数

函数的调用:函数名加括号
1 先找到名字
2 根据名字调用代码
无return->None
return 1个值->返回1个值
return 逗号分隔多个值->元组

四 函数的参数

#形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
#1、位置参数:按照从左到右的顺序定义的参数
        位置形参:必选参数
        位置实参:按照位置给形参传值
总结:依位传值
#2、关键字参数:按照key=value的形式定义的实参
        无需按照位置为形参传值
        注意的问题:
                1. 关键字实参必须在位置实参右面
                2. 对同一个形参不能重复传值
总结:依关键词传值
#3、默认参数:形参在定义时就已经为其赋值
        可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
        注意的问题:
                1. 只在定义时赋值一次
                2. 默认参数的定义应该在位置形参右面
                3. 默认参数通常应该定义成不可变类型
总结:选择传值
#4、可变长参数:
        可变长指的是实参值的个数不固定
        而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs

总结:*元组与位置参数转换,**字典与关键字参数转换
#5、命名关键字参数:
    *后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递可以保证,传入的参数中一定包含某些关键字
总结:限制关键词传值

五 练习题

三 函数对象、函数嵌套、名称空间与作用域、装饰器

四 迭代器、生成器、面向过程编程

五 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

六 函数草稿 

猜你喜欢

转载自www.cnblogs.com/benjieming/p/9392297.html