python函数

函数

封装特定功能,表示行为。
可重复执行的语句块。

def 函数名(形式函数):
	函数体

函数的第一行语句建议使用注释描述函数功能与参数

调用函数函数名(实际参数)

返回值return 数据
return后没有语句,相当于返回None
函数体没有return,相当于返回None

可变和不可变类型的传参区别

不可变类型参数:

  • 数值型(整数,浮点,复数)
  • 布尔值bool
  • None 空值
  • 字符串str
  • 元组tuple

可变类型参数:

  • 列表list
  • 字典dict
  • 集合set

注:不可变类型数据传参时,函数内部不会改变原数据的值。可变类型数据传参时,函数内部可以改变原数据。

作用域

变量起作用的范围。

  • Local局部作用域:函数内部
  • Enclosing外部嵌套作用域:函数嵌套
  • Global全局作用域:模块(.py文件)内部
  • Builtin内置模块作用域:builtins.py文件

变量查找规则,又内到外L→E→G→B
在访问变量时,先查找本地变量,然后是包裹此函数外部的函数内部的变量,之后是全局变量,最后是内置变量。

局部变量

定义在函数内部的变量(形参也是局部变量)。
只能在函数内部使用。
调用函数时才被创建,函数结束后自动销毁。

nonlocal语句:在内层函数修改外层嵌套函数内的变量
nonlocal 变量名1,变量名2...
在被嵌套的内函数中进行使用

全局变量

定义在函数外部,模块内部的变量。
在整个模块(py文件)范围内访问(但函数内不能对其直接赋值)。

global语句:在函数内部修改全局变量,在函数内部定义全局变量(全局声明)。
global 变量1,变量2,···
注意:在函数内直接为全局变量赋值,视为创建新的局部变量。不能先声明局部变量,再用global声明为全局变量。

实际参数

位置实参:实参与形参的位置依次对应。
序列实参:实参用*将序列拆解后与形参的位置以此对应。
关键字实参:实参更具形参的名字进行对应。
字典关键字实参:实参用**将字典拆解后与形参的名字进行对应。配合形参的缺省参数,可以使调用者随意传参。

形式参数

  • 缺省参数:
def 函数名(形参名1=默认实参1,形参名2=默认实参2,···):
	函数体

注意:缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都必须有缺省参数。缺省参数可以有0个或者多个,甚至全部都有缺省参数。

  • 位置形参
def 函数ming(形参名1,形参名2,···):
	函数体

注意:约束调用者必须传递信息。

  • 星号元组形参
def 函数名(*元组形参名):
	函数体

用于收集多余的位置传参,一般命名为’args’,形参里最多一个。

  • 命名关键字形参
def 函数名(*,命名关键字形参1,命名关键字形参2,···):
	函数体
def 函数名(*args,命名关键字形参1,命名关键字形参2,···):
	函数体

用作强制实参使用关键字传参。

  • 双星号字典形参
def 函数名(**字典形参名):
	函数体

用作收集多余的关键字传参。一般命名为’kwargs’,形参里最多一个。

强化-函数参数

  • 实参:调用函数
    位置实参:根据位置与形参对应
    序列实参:拆分序列后根据位置与形参对应
    关键字实参:根据名称与形参对应
    字典实参:拆分字典后根据名称与形参对应
  • 形参:定义函数
    缺省参数:实参可以不提供
    位置形参:实参必须提供
    星号元组形参:将位置实参合并为元组,位置实参数量无限。
    命名关键字形参:约束实参必须使用关键字实参。
    双星号字典形参:将关键字实参合并为字典,关键字实参数量无限。
  • 形参顺序:位置形参→星号元组形参→命名关键字形参→双星号字典形参
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值