Python函数的高级引用

一、python函数

由若干语句组成的语句块,函数名称,参数列表构成,它是组织代码的最小单元,通过函数完成一定的功能
1、函数的作用

结构化编程对代码的最基本封装,一般按照功能组织一段代码
封装的目的是为了功能复用,减少冗余代码
使代码更加简洁美观,可读易懂
2、函数的分类

内建函数,如:max(),reversed()等
库函数,如math.ceil()等
3、函数的定义和调用
定义
def语句定义函数
函数名就是标识符,命名要求一样
语句块必须缩进,约定4个空格
python的函数若没有return语句,隐式会返回一个None值
定义中的参数列表成为形式参数,只是一种符号表达,简称形参
调用

函数定义只是声明了一个函数,它不会被执行,需要调用
调用方式,就是函数名加上小括号,括号内写参数
调用时写的参数是实际参数,是实实在在的传入的值,简称实参
二、函数参数

参数调用时传入的参数要和定义的个数相匹配(可变参数例外)
位置参数:按照参数定义顺序传入实参fn(1,2)
关键字参数:使用形参的名字来传入实参的方式,如果使用了形参名字,那么传参顺序就可以随意fn(x=1,y=1)
传参:要求位置参数必须在关键字参数之前传入,位置参数是位置对应的;
1、函数参数默认值
参数的默认值可以在未传入足够的实参的时候,对没有给定的参数赋值为默认值
参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用

2、可变参数

在形参前使用*表示该形参是可变参数,可以接收多个实参
收集多个实参为一个tuple元组
在这里插入图片描述
3、可变关键字参数

形参前使用**符号,表示可以接收多个关键字参数
收集的实参名称和值组成一个字典
在这里插入图片描述
4、参数总结

有位置可变参数和关键字可变参数
位置可变参数在形参前使用一个冒号*
关键字可变参数在形参前使用两个冒号**
位置可变参数和关键字可变参数都可以收集若干个实参
混合使用参数的时候,可变参数要放到参数列表的最后,普通参数放在前面
在这里插入图片描述
5、keyword-only参数

如果在一个冒号参数后,或者一个位置可变参数后,出现的普通参数,实际上已经不是普通的参数了,
而是keword-only参数
在这里插入图片描述
6、参数规则

参数列表一般顺序是,普通参数,缺省参数,可变位置参数,kew
在这里插入图片描述
三、参数解构

给函数提供实参的时候,可以在集合类型前使用或者**,把集合类型的结构解开,提取所有元素作为函数的实参
非字典类型使用
解构成位置参数
字典类型使用**解构成关键字参数
提取出来的元素数目要和参数的要求匹配,也要和参数的类型匹配
在这里插入图片描述
四、函数的返回值和作用域

1、返回值

python函数使用return语句返回值,所有函数都有返回值,如果没有return,会隐式调用return None
return语句并不一定是函数的语句最后一条语句
一个函数可以存在多个return语句,但是只有一条可以被执行,如果没有一条return语句被执行到,就执行隐式retnurn
如果有必要,可以显示调用return None,可以简写为return
如果函数执行了return语句,函数就会返回,当前被执行的return语句之后的其他语句不会被执行
return的作用是结束函数调用,返回值不能同时返回多个值
2、作用域

全局作用域:在整个程序运行环境中都可见
局部作用域:在函数,类等内部可见,局部变量使用范围不能超过其所在的局部作用域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值