函数

函数基本语法

函数的作用:当你在写一个程序的时候,如果需要反复执行同一个动作,你可以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

 

posted @ 2019-01-28 15:24  妇愁者  阅读(115)  评论(0编辑  收藏  举报