函数
函数基本语法
函数的作用:当你在写一个程序的时候,如果需要反复执行同一个动作,你可以copy几次自己的代码,但是当需要反复执行成百上千次代码的时候,这样是不是显得自己很low,函数是可以实现反复调用,就像你只需要下达一个指令,他就知道自己要做什么,不需要再反复得去自己搞了!
函数的语法:
def func(): print('i am you father.') return 'no’ func() print(func()) 执行结果: i am you father. i am you father. no
观察执行的结果,函数的结果是返回一个return的值之后就执行结束了,return的值需要打印出来,如果没有return的值,那么print出来的值会显示‘None’。
函数参数和局部变量
形参只有在被调用的时候才能分配内存单元,调用结束后,内存单元就会被立刻释放。因此,形参只在函数内部才会生效,函数调用结束后则不能在调用形参变量。
实参可以是常量、变量、表达式以及函数等。在函数调用的时候,一定要有确切的值,然后把这些值传给形参。
默认参数:当我们创建一个函数的时候,如果传入的参数有其中一个是默认值,那么我们就不需要继续填写了。
内置函数和递归函数
- 内置函数是python自带的函数,可以选择查找内置函数表。
- 递归函数是在函数内部调用函数自身,从而实现递归。最典型的案列就是利用递归实现二分查找。
# Author:Zhang Zhao def calc(n): ''' this is a simple recursion function. :param n: :return: ''' print(n) if int(n/2) == 0: return n calc(int(n/2))
两种比较重要的方法:map,reduce
- map,接收一个函数和函数的参数,实现对多个参数分别进行操作,一般会生成一个列表。
- reduce,接收一个函数和函数的参数,实现对多个参数进行层级操作,例如阶乘操作。如果看不明白看下面的代码和结果,就可以理解了!
def add(a,b): return a+b def multiply(a,b): return a*b def self_multiply(a): return a**2 list1 = [1,2,3,4] list2 = [5,6,7,8] print(list(map(add,list1,list2))) print(list(map(self_multiply,list1))) from functools import reduce print(reduce(add,list1)) print(reduce(multiply,list1)) 执行结果: [6, 8, 10, 12]
[1, 4, 9, 16]
10
24