没有合适的资源?快使用搜索试试~ 我知道了~
Python全套课程笔记-chap4-函数
需积分: 10 1 下载量 96 浏览量
2021-01-02
18:20:01
上传
评论
收藏 10KB TXT 举报
温馨提示
试读
2页
适合小白了解python
资源推荐
资源详情
资源评论
1 函数入门与定义函数
1.1 理解函数:一段实现特定功能的代码,定义为函数就是为这一段代码起一个名字,以后可以通过改名字来执行(调用)这段代码。调用函数的时候,函数相当于一个黑匣子,传入对应的参数,就会返回值。
1.2 函数定义的3条必备:(1)函数需要几个关键的、需要动态变化的数据,这些数据就应定义成函数的参数;(2)函数需要传出去几个重要的数据(就是调用该函数的人希望得到的数据),这些数据应该定义成返回值;(3)如果是定义函数,应当写出函数的内部实现过程
1.3 定义函数的语法:在使用函数之前必须先定义函数,语法格式如下:
def 函数名(形参列表): def max(a,b):
//函数体 r= a if a>b else b
[return[返回值]] return r # return是语句,不是函数,所以不是像print(r)
函数是一种非常好的复用的方式,只要调用函数,函数中的代码就会执行一次。函数没有需要改变的参数,可以不传参数,但是调用的时候一定要有括号:my_founction()。
只有一个返回值,赋给一个变量x=max(50,55),也可以直接用print(max(50,55)),其实print也是一个函数,是函数的嵌套调用。
1.4 为函数提供文档(用于对函数进行说明):只要把一段字符串放在函数声明之后,函数体之前,这段字符串就是函数的说明文档;python的内置help()函数可以查看其他函数的帮助文档,也可以通过函数的__doc__属性来查看。help(zip)、zip.__doc__【共4个下划线】
2 多返回值函数与递归函数
2.1 多返回值函数:多返回值函数的本质是返回元组,将多个值自动封装成元组,以多个变量接收就涉及到解包,用单个变量接收就直接是接收元组
2.2 递归函数:在函数体内调用了它本身,包含了一个隐式的循环,会重复的执行代码,但是不需要用循环来控制。应当注意不要无限递归,要设置结束点,并保证函数的运行方向是向递归点运行,如if n==1:return 1 (return类似于break和continue),然后递归是用 frac(n-1)*n向1递归。
3 关键字参数与参数默认值
3.1 调用函数时,支持两种方式为参数指定值:第一种是位置参数,按照顺序为每个参数指定参数值;第二种是关键字参数,按照参数名为参数指定位置。如果混合使用关键字参数和位置参数,关键字参数必须放在位置参数之后
3.2 关键字参数:参数名不是无意义的,允许调用函数时通过名字来传入参数值。如:info(age=34,name='keating',height=179),需要注意的是,和在字典中一样,利用关键字参数的时候不用加引号。优势是不需要按顺序,同时参数很多时可读性更高。
3.3 参数的默认值:定义函数的时候可以为一个或多个参数指定默认值,可省略为该形参传入参数值,而使用该形参的默认值,形参名=默认值。应当注意有默认值的参数应当放在没有默认值参数的后边,如果有多个参数有默认值,想忽略给前边的参数指定参数值,应当用关键字参数传入值。
4 参数收集与逆向参数收集
参数收集是用来收集调用函数时候的赋值的,一对多;逆向参数收集是调用函数时候的赋值方式,把一个序列依次传给参数,多对一。
4.1 参数收集:(1)普通参数收集:在其他语言中称为"可变参数",在形参前边添加一个*,意味着该参数可以接受多个参数值,封装成元组传入。一个函数只能带一个支持"普通"参数收集的形参,该形参可以在参数列表任意位置,但是如果放前边,后边的参数必须用关键字参数传值,否则所有参数都会被收集走。(2)关键字参数收集:在参数前边添加两个星号,该参数支持关键字参数收集,收集的参数被当作dict处理,即自动封装成dict,一个函数可以同时支持普通参数收集和关键字参数收集。dict的关键字收集,只会收集不能明确传入的关键字参数。
4.2 逆向参数收集:在列表或者元组前边加*,就会进行解包;在字典之前添加**,就会对字典进行双解包。如function(a,b);vals=(20,30),调用函数funtion(vals)时,不会对元组进行自动解包,会把元组看作一个整体b参数无值,若需要解包的话需要在前边加*:function(*vals)。字典将会以关键字参数的形式传入。
普通的逆向参数收集,即列表元组的解包是位置参数赋值;字典的逆向参数收集是以关键字参数的形式赋值。
5 变量作用域
5.1 理解变量作用域:在还没有学到面向对象的时候,python的作用域主要用两种:(1)局部变量:在函数中定义的变量包括参数,都被称为局部变量,只在当前定义的函数内有效;(2)全局变量:在函数外面,全局范围内定义的变量,被称为全局变量。
5.2 变量字典:不论在全局范围还是局部范围,这些变量和它们的值组成了一个"看不到"的字典,变量名就是字典的key,变量值就是字典的value。可以用函数获取变量字典:globals()返回全局范围内所有变量的字典;locals()该函数返回当前局部范围内的变量字典;vars(object)获取指定对象的范围内所有变量组成的变量字典,不传入object时同local()。
如果在全局范围内用locals就相当于globals,另外python有很多内置的全局变量,全局变量访问不到局部变量
1.1 理解函数:一段实现特定功能的代码,定义为函数就是为这一段代码起一个名字,以后可以通过改名字来执行(调用)这段代码。调用函数的时候,函数相当于一个黑匣子,传入对应的参数,就会返回值。
1.2 函数定义的3条必备:(1)函数需要几个关键的、需要动态变化的数据,这些数据就应定义成函数的参数;(2)函数需要传出去几个重要的数据(就是调用该函数的人希望得到的数据),这些数据应该定义成返回值;(3)如果是定义函数,应当写出函数的内部实现过程
1.3 定义函数的语法:在使用函数之前必须先定义函数,语法格式如下:
def 函数名(形参列表): def max(a,b):
//函数体 r= a if a>b else b
[return[返回值]] return r # return是语句,不是函数,所以不是像print(r)
函数是一种非常好的复用的方式,只要调用函数,函数中的代码就会执行一次。函数没有需要改变的参数,可以不传参数,但是调用的时候一定要有括号:my_founction()。
只有一个返回值,赋给一个变量x=max(50,55),也可以直接用print(max(50,55)),其实print也是一个函数,是函数的嵌套调用。
1.4 为函数提供文档(用于对函数进行说明):只要把一段字符串放在函数声明之后,函数体之前,这段字符串就是函数的说明文档;python的内置help()函数可以查看其他函数的帮助文档,也可以通过函数的__doc__属性来查看。help(zip)、zip.__doc__【共4个下划线】
2 多返回值函数与递归函数
2.1 多返回值函数:多返回值函数的本质是返回元组,将多个值自动封装成元组,以多个变量接收就涉及到解包,用单个变量接收就直接是接收元组
2.2 递归函数:在函数体内调用了它本身,包含了一个隐式的循环,会重复的执行代码,但是不需要用循环来控制。应当注意不要无限递归,要设置结束点,并保证函数的运行方向是向递归点运行,如if n==1:return 1 (return类似于break和continue),然后递归是用 frac(n-1)*n向1递归。
3 关键字参数与参数默认值
3.1 调用函数时,支持两种方式为参数指定值:第一种是位置参数,按照顺序为每个参数指定参数值;第二种是关键字参数,按照参数名为参数指定位置。如果混合使用关键字参数和位置参数,关键字参数必须放在位置参数之后
3.2 关键字参数:参数名不是无意义的,允许调用函数时通过名字来传入参数值。如:info(age=34,name='keating',height=179),需要注意的是,和在字典中一样,利用关键字参数的时候不用加引号。优势是不需要按顺序,同时参数很多时可读性更高。
3.3 参数的默认值:定义函数的时候可以为一个或多个参数指定默认值,可省略为该形参传入参数值,而使用该形参的默认值,形参名=默认值。应当注意有默认值的参数应当放在没有默认值参数的后边,如果有多个参数有默认值,想忽略给前边的参数指定参数值,应当用关键字参数传入值。
4 参数收集与逆向参数收集
参数收集是用来收集调用函数时候的赋值的,一对多;逆向参数收集是调用函数时候的赋值方式,把一个序列依次传给参数,多对一。
4.1 参数收集:(1)普通参数收集:在其他语言中称为"可变参数",在形参前边添加一个*,意味着该参数可以接受多个参数值,封装成元组传入。一个函数只能带一个支持"普通"参数收集的形参,该形参可以在参数列表任意位置,但是如果放前边,后边的参数必须用关键字参数传值,否则所有参数都会被收集走。(2)关键字参数收集:在参数前边添加两个星号,该参数支持关键字参数收集,收集的参数被当作dict处理,即自动封装成dict,一个函数可以同时支持普通参数收集和关键字参数收集。dict的关键字收集,只会收集不能明确传入的关键字参数。
4.2 逆向参数收集:在列表或者元组前边加*,就会进行解包;在字典之前添加**,就会对字典进行双解包。如function(a,b);vals=(20,30),调用函数funtion(vals)时,不会对元组进行自动解包,会把元组看作一个整体b参数无值,若需要解包的话需要在前边加*:function(*vals)。字典将会以关键字参数的形式传入。
普通的逆向参数收集,即列表元组的解包是位置参数赋值;字典的逆向参数收集是以关键字参数的形式赋值。
5 变量作用域
5.1 理解变量作用域:在还没有学到面向对象的时候,python的作用域主要用两种:(1)局部变量:在函数中定义的变量包括参数,都被称为局部变量,只在当前定义的函数内有效;(2)全局变量:在函数外面,全局范围内定义的变量,被称为全局变量。
5.2 变量字典:不论在全局范围还是局部范围,这些变量和它们的值组成了一个"看不到"的字典,变量名就是字典的key,变量值就是字典的value。可以用函数获取变量字典:globals()返回全局范围内所有变量的字典;locals()该函数返回当前局部范围内的变量字典;vars(object)获取指定对象的范围内所有变量组成的变量字典,不传入object时同local()。
如果在全局范围内用locals就相当于globals,另外python有很多内置的全局变量,全局变量访问不到局部变量
资源评论
captain_keating
- 粉丝: 376
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功