函数:被组织好的,可重复使用的,用来实现单一功能或相关联功能的代码块。
合理利用函数,可以增强应用的模块性,提高代码的重复使用率。
比如常用的求绝对值,最大值,字符串长度等这些模块,都已经被封装成内置函数abs(),max(),len()。
当然有一些只对于你个人的项目而言常用的模块,在找不到python内置函数时,就可以选择自己定义函数。
接下来依此学习函数的定义,返回值,参数,作用域。
函数的定义:
def 函数名(形参):
函数体
return 返回值
1,函数名避免使用关键字。
2,当不需要传递参数时,形参可为空,对于形参的其他要求,在介绍参数时详细说明。
3,函数体,即为这个函数要执行的操作。
4,返回值。调用这个函数后返回的结果。
函数的返回值:
1,返回值为空:
不写return语句,或者return None,或者只写return
返回值为空即为不需要返回结果。
2,python函数中,返回值只能是一个值。
return后面只能跟一个对象,当需要多个返回值时,会自动封装成元组类型。
函数的参数:
python中的形参有四种,必选参数,默认参数,可变参数和关键字参数。
必选参数:有些函数调用过程必须传入形式参数,否则会有TypeError异常。例如:
当我们在定义函数的时候,也可以这样规定,比如def my_add(x,y)就有两个必选参数,当需要调用my_add()时,就必须传入两个参数
默认参数:在函数调用过程中我们会发现, 有一些参数,变化频率相对低一点。比如,我们想要定义一个求幂运算的函数,大多数情况下,只要求返回二次幂,但是个别情况下,我们也会要求返回其他三次,四次,五次幂运算,这个时候,就可以通过默认参数来实现。
可变参数:还有一种场景是在你调用函数的时候根本不知道会接收多少参数……
*变量名 从*位置开始接收的所有位置参数,会自动被封装成一个元组。可以解决此类场景。
(位置参数:根据位置来传递的参数,区别于关键字参数。)
*后面可以跟任何参数名,但一般会用args
关键字参数:**变量名 用来接收一个或多个含参数名的参数,将其封装成dict
作用域
变量的作用域在有些编程语言中也叫做变量的生命周期。
是指变量能应用的范围,也就是,在你使用这个变量时不会提示not defined错误的范围。
函数内定义的变量,作用域就仅限于此函数,函数意外的地方都不可以用。
当然,python提供了一种特殊标识,global关键字,能将局部变量变成全局变量。