函数,名称出自数学家李善兰的著作《代数学》—“凡此变数中函彼变数者,则此为彼之函数”。即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。
我们简单理解为,一个输入,对应一个唯一的输出关系。
编程语言中,函数即指一个语句块,语句块有自己的名字,他可以有输入,也可以有输出。
之前我们已经用过python的内建函数,例如print、len等,下面我们来讲函数的相关使用.
1.函数的定义
1)函数通过关键字def定义
2)def关键字后跟一个函数的标识符名称,再跟一对圆括号
3)圆括号中包括一些变量名、传入的参数,以冒号结尾
4)函数内容以冒号起始,并且缩进
5) 返回值用return +返回值进行上报,如果没有返回值,直接写一个return,相当于上报None
例:
1 | #!/usr/bin/python |
输出:
This is a function test code!
2.函数形参
形参,即你传给函数的参数,函数取得这个值,并用这个值去做一些事情。
若果有多个形参,则需要用逗号进行分隔。
一个形参,例如:1
2
3
4
5
6
7
8
9#!/usr/bin/python
# -*- coding :UTF -8 -*-
def test(a):
if a>0:
return a
x = test(2)
print(x)
输出:2
两个形参:1
2
3
4
5
6
7
8
9
10
11
12
13#!/usr/bin/python
# -*- coding :UTF -8 -*-
def test(a,b):
if a > b:
print ("a is max num")
return a
else:
print ("b is max num")
return b
x = test(2,3)
print(x)
输出:
b is max num
3
3.局部变量
局部变量是在函数体内声明的变量,即使他们与函数外部具有相同的名称,但是他们没有任何关系。
例:1
2
3
4
5
6
7
8
9
10
11#!/usr/bin/python
# -*- coding :UTF -8 -*-
def test(a):
print ("a is ",a)
a = 10
print ("a modify to ",a)
a = 2
test(a)
print ("a is still",a)
输出: a is 2 a modify to 10 a is still
第一次把a赋值为2,传给test函数,这里的a为形参,test函数中a赋值为10,这里a为局部变量,其实跟我传进来的值没有任何关系,所以当跳出函数体后,a仍然为2
4.全局变量global
如果想上面例子中的a,我们想在test函数中真正能修改他的值,我们就需要把a作为一个全局变量,用global进行定义
例:1
2
3
4
5
6
7
8
9
10
11
12#!/usr/bin/python
# -*- coding :UTF -8 -*-
def test():
global a
print ("a is ",a)
a = 10
print ("a modify to ",a)
a = 2
test()
print ("a is still",a)
输出: a is 2 a modify to 10 a is still 10
这里的a为一个全局变量