函数定义语法:
def 函数名([参数列表]):
'''注释'''
函数体
注意:
1.函数形参不需要声明类型,也不需要指定函数返回值类型
2.即使该函数不需要接收任何参数,也必须保留一对空的圆括号
3.括号后面的冒号必不可少
4.函数体相对于def关键字必须保持一定的空格缩进
5.Python允许嵌套定义函数
例:
编写生成斐波那契数列的函数并调用
def fib(n):
a, b = 1, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(1000)
- 函数定义时圆括弧内是使用逗号分隔开的形参列表(parameters),函数可以有多个参数,也可以没有参数,但定义和调用时一对圆括弧必须要有,表示这是一个函数并且不接收参数。
- 调用函数时向其传递实参(arguments),根据不同的参数类型,将实参的引用传递给形参。
- 定义函数时不需要声明参数类型,解释器会根据实参的类型自动推断形参类型。
lambda表达式
- lambda表达式可以用来声明匿名函数,也就是没有函数名字的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。也可以定义具名函数。
- lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含复合语句,但在表达式中可以调用其他函数。
>>> f=lambda x,y,z:x+y+z
>>> f(1,2,3)
6
返回值
函数用return语句返回值。这时,return后面的表达式的值就成为这次函数调用的返回值。如果函数没有用return语句返回,这时函数返回的值为None;如果return后面没有表达式,调用的返回值也为None。