函数基础
1.函数作用
将可能需要反复执行的代码封装为函数,并在需要该功能的地方进行调用,不仅可以实现代码复用,更重要的是可以保证代码的一致性,只需要修改该函数代码则所有调用均受到影响。
2.函数定义语法
def 函数名([参数列表]):
‘’‘注释’’’
函数体
注意:
- 函数形参不需要声明其类型,也不需要指定函数返回值类型
- 即使该函数不需要接收任何参数,也必须保留一对空的圆括号
- 括号后面的冒号必不可少
- 函数体相对于def关键字必须保持一定的空格缩进
- Python允许嵌套定义函数
3.函数成员
Python是一种高级动态编程语言,变量类型是随时可以改变的。Python中的函数和自定义对象的成员也是可以随时发生改变的,可以为函数和自定义对象动态增加新成员。
def fn():
print(fn.x)
# fn() # 没有成员x,执行会报错
fn.x = 2 # 动态为函数增加成员
fn() # 2
4.形参和实参
对于绝大多数情况下,在函数内部直接修改形参的值不会影响实参。
如果传递给函数的是可变序列,并且在函数内部使用下标或可变序列自身的方法增加、删除元素或修改元素时,修改后的结果是可以反映到函数之外的,实参也得到相应的修改。
def Change(List):
List[0] = 2
List=[1,2,3]
Change(List)
print(List) # [2, 2, 3]
5.lambda表达式
lambda表达式可以用来声明匿名函数,也就是没有函数名字的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。
lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含其他复杂的语句,但在表达式中可以调用其他函数。
# lambda关键字 参数 函数体
g = lambda x, y=2,z=3: x+y+z #参数默认值
print(g(1)) # 6
lambda表达式的名字可有可无。
L = [(lambda x: x**2), (lambda x: x**3), (lambda x: x**4)]
print(L[0](2),L[1