函数 (function)


1
2
3
def functionName(parameter1, parameter2, ...):
functionStatements
return returnValue
  • def 是关键字,定义函数

  • 圆括号里是参数,可以有多个,也可以没有

  • return 值可以有多个,用逗号隔开,函数外用多个以逗号隔开的变量承接。也可以没有,即不写 return


参数和变量



参数


形参和实参

  • 形参:函数名后括号里的变量

  • 实参:调用函数的时候,给函数提供的值

如果函数中形参为字典/列表的变量,并在函数中进行修改,则实参也会被修改。


设置默认值

1
2
3
def functionName(parameter1 = num1, parameter2 = num2, ...):
functionStatements
return returnValue


不定长参数

1
2
3
def functionName(*argument):
functionStatements
return returnValue

参数会通过 *argument 以元组的形式打包起来


变量


全局变量和局部变量

  • 全局变量:可以在整个程序范围内访问

  • 局部变量:只在函数体内(某个范围内)起作用的变量


递归


指函数自己调用自己。

1
2
3
4
5
6
7
8
def functionName(parameter1):
if condition:
statementTrue
return
functionStatements
functionName(parameter2)
functionStatements
return

谨慎使用递归,迭代或循环的效率更高


lambda 函数


lambda函数是一个只用一行就能解决问题的函数

1
lambda_add = lambda parameter1, parameter2, ... : returnValue


map


map(func, iterable_seq)

func 是一个函数,iterable_seq 是一个序列

map 会以 func 为规则,对 iterable_seq 中的每个元素做映射


filter


filter(func, iterable_seq)

func 是一个函数,iterable_seq 是一个序列

filter 会以 func 为规则,对 iterable_seq 中的每个元素做判断,返回值为 True 的元素会放到一个新列表中