函数
我们经常需要在同一个程序里多次复用代码。函数可以很好的帮助我们完成这一点。我们在函数里写我们要重复做的事,然后我们在任何需要的时候调用它。我们已经看到一些内建的函数,比如 len(),divmod()。
1.函数的定义
def functionname(params): statement1 statement2
2. 局部和全局变量
举例
def change(): a = 90 print(a) a = 9 print("Before the function call ", a) print("inside change function", end=' ') change() print("After the function call ", a)
Before the function call 9
inside change function 90
After the function call 9
首先我们对 a 赋值 9,然后调用更改函数,这个函数里我们对 a 赋值 90,然后打印 a 的值。调用函数后我们再次打印 a 的值。当我们在函数里写 a = 90 时,它实际上创建了一个新的名为 a 的变量,这个变量只在函数里可用,并且会在函数完成时销毁。所以即使这两个变量的名字都相同,但事实上他们并不是同一个变量。
这里通过关键字 global 来告诉 a 的定义是全局的,因此在函数内部更改了 a 的值,函数外 a 的值也实际上更改了
def change(): global a a = 90 print(a) a = 9 print("Before the function call ", a) print("inside change function", end=' ') change() print("After the function call ", a)
Before the function call 9 inside change function 90 After the function call 90
参数取默认值
>>> def test(a , b=-99): ... if a > b: ... return True ... else: ... return False 如果不传b ,默认取-99
3.高阶函数
高阶函数(Higher-order function)或仿函数(functor)是内部至少含有一个以上步骤的函数:
1.使用一个或多个函数作为参数
2.返回另一个函数作为输出
def high(func, value): return func(value) print (high(len,'zhangwei')) 8
map函数
map 是一个在 Python 里非常有用的高阶函数。它接受一个函数和一个序列(迭代器)作为输入,然后对序列(迭代器)的每一个值应用这个函数,返回一个序列(迭代器),其包含应用函数后的结果。
#! /usr/bin/python #coding=utf-8 lst = [1, 2, 3, 4, 5] def square(num): "返回一个数的平方" return num * num print(list(map(square, lst))) #[1, 4, 9, 16, 25]
浙公网安备 33010602011771号