1.函数的创建与调用
使用def关键字,语法格式如下:
def function(形式参数):
['''用于调用时显示的注释''']
[函数体]
注意:在定义函数时也可以赋初始值,但是默认参数必须指向不可变对象。
调用语句:
function(实际参数)
- 形式参数:形参只是一种形式,他的作用是完成函数的运算法则,是一种占位呈现的作用。
- 实际参数:是函数在调用时真真正正传入的需要计算的值,而对于值运算的规则已经在函数定义时就用形参构造过了。
位置参数
顾名思义,位置参数需要按照正确的顺序传入到函数中,调用时的数量和位置必须与定义函数时保持一致。
关键字参数
关键字参数是使用形参的名字来确定输入的参数值,通过该方式指定实参时不再需要与形参的位置完全一致,参数名写对即可。
可变参数
1.*parameter
单星号表示接收任意多个实际参数并将其放在一个元组中,参数个数是可变的。
2.**parameter
双星号表示将其放到一个字典中,由于字典键值对的特性,因此接收时是显示赋值的实际参数
二者的区别就在于一个传参数一个传键值对,一个放到元组,一个放到字典
2.返回值
Python的return语句与C有些差别,语法格式:
result = return [value]
result用于保存返回结果,但是py中可以返回不止一个值,如果返回一个,则保存的就是一个值,如果是多个,保存的则是一个元组。 当然返回值可以是任何类型;如果没有return语句或者省略了其返回参数,则返回None,即空。
3.变量作用域
作用域方面与C语言极其相似。函数体内部定义的变量即为局部变量,整体定义的则为全局变量,当全局变量与局部变量重名时,对函数体内的变量赋值后,不影响函数体外的变量。
不同的是,py中可以在局部变量前加入global关键字将其声明为全局变量使用。
4.lambda
用的不多懒得起名字就用它…语法格式如下:
result = lambda [参数1,2,3,4......]:expression
result用于接收值,expression是对传入参数进行运算的表达式。举个例子:
定义一个计算圆面积的函数:
import math
r = 10
result = lambda r:math.pi*r*r
print(result(r))
需要新变量来接收这个值并以函数方式调用它;lambda主要用于指定短小的回调函数。