python入门:自定义函数及常用操作


函数是一段事先定义好的,可重复调用的代码块,用于简化代码的重复使用,而自定义函数则是编写者新定义的用于实现指定功能的函数。本篇文章将介绍python中自定义函数的相关操作

函数定义

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

使用时用 函数名(实参)进行函数调用
形参用来接收实参对应的数据,并在函数体中作为变量,有四种:

  1. 必选参数:必须接收实参数据的参数,调用时实参与必选参数一一对应
  2. 默认参数:def 函数名(形参=默认值);若调用时不传递对应参数,该形参使用默认值
  3. 可变参数:def 函数名(*形参);以元组形式接收所有实参,用于接收不确定数量的参数
  4. 关键字参数:def 函数名(**形参);以字典形式接收所有实参,实参格式应为 key=value;要限制关键字命名时用 def 函数名(*, 形参);*后的所有形参接收实参格式为形参=value

参数定义顺序:必选、默认、可选、关键字参数和命名关键字,即 def 函数名(a, b=0, *c, **d, *, e)

函数引用

可变变量作为实参时会传递在函数内的改变,相当于传递的是变量的引用,即地址;不可变变量作为实参则不会传递在函数内的改变,相当于传递变量的值(复制)
函数名引用:别名=函数名,向别名传递函数名的引用,之后也可以用别名()对相应函数进行调用
help(函数名) 查看函数或模块的说明文档

函数返回值

在函数体中用return 数据,会将数据作为函数的值返回,遇到return后函数将不再执行;函数只能返回一个值,但数据可以是六大类型,若用逗号隔开多个值则会返回一个元组;return的可以是数据或函数
调用:变量=函数名(实参),函数将返回值赋给变量

函数嵌套

1.按调用顺序依次定义(被调用的函数在调用它的函数前定义)
2.在函数体内嵌套定义(要缩进,定义完要调用),即

def func1():
	def func2():
		func2代码
	func2()

变量的作用域

全局变量:在整个文件中都生效,包括自定义的函数体内;
局部变量:函数内定义的局部变量仅在该函数内有效,不同函数可以定义重名的局部变量
在函数体内声明局部变量会屏蔽重名的全局变量,此时修改变量值不会传递出函数外
global 变量名 将变量声明为全局变量,这时函数内对变量的修改会传出函数
nonlocal 变量名 将变量声明为上一层级(父级)函数的局部变量,但不能为全局变量,从父级开始向内的函数对该变量的修改都能在父级下传递

匿名函数

函数名=lambda 形参:返回值 对简单函数定义,形参可用逗号隔开,通过返回值对形参之间进行单条简单运算或函数调用,如

func=lambda a, b:a+b
x=func(a, b) # 将a+b的值返回给x

拆包

多个变量=可迭代变量(元组、列表、字典)的形式,将可迭代变量里的值一一赋给左边变量,字典只赋key值;要求赋值变量数与可迭代变量中的元素数相同,或出现一个可变变量(*变量),赋给可变变量的是一个切片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值