第三章 函数和模块
3.1 函数
1. 函数概念
函数是一种语法结构, 把一系列指令封装在一起
定义完毕后, 就可以通过调用函数进行使用
输入数据被称为参数, 参数能影响函数的行为
2. 定义函数
首先制作一个函数
函数制作过程又称为定义函数 (define function)
称这个函数为 square_sum()
这个函数功能是计算两个数的平方和:
- def square_sum(a,b):
- a = a**2
- b = b**2
- c = a + b
- return c
def 这个关键字通知 py"这里要定义函数了"
def 后面跟着 square_sum, 即函数的名字.
在函数名后面还有个括号, 用来说明函数有哪些参数
即括号中的 a 和 b, 参数可以有多个, 也可以完全没有
根据 py 语法规定, 即使没有输入数据, 函数后面的括号也要保留
在定义函数时, 使用了 a 和 b 两个符号来指代输入数据
等到真正使用函数时, 才会说明 a 和 b 具体是什么样的数字
参数在函数定义定义的内部起到了和变量类似的功能
可以用符号化的形式参与到任何一行指令中
由于函数定义中的参数是个形式代表, 并非真正数据
所以又称为形参 (Parameter)
作为函数的最后一句, 函数执行到 return 就会结束
不管它后面是否还有其他函数定义语句
如果把 square_sum() 改为下面形式:
- def square_sum(a,b):
- a = a**2
- b = b**2
- c = a + b
- return c
- print('am I alive?')
则函数执行时, 只会执行到 return c
后面一句 print() 虽然也归属于函数, 却不会被执行
所以, return 还起到了终止函数和返回固定值的功能
在 py 语法中, return 并不是必须的
如果没有 return, 或者 return 后面没有返回值时
则函数将返回 None,None 是 py 数据中的空数据
表示什么都没有
return 也可以返回多个值
多个值跟在 return 后面, 用逗号分隔
从效果上看, 其等价于返回一个有多个数据的元组
return a,b,c #相当于 return(a,b,c)
3. 调用函数
使用函数的过程叫做调用函数 (Call Function)
在第一章中, 已经调用过 print() 函数
print('Hello World')
直接使用了函数名, 在括号中加入了具体参数
此时的参数不再是定义函数时使用的符号
而是一个实际的数据 --- 字符串 "Hello World"
所以, 在函数调用时出现的参数称为实参 (argument)
函数 print() 返回值为 None
如果一个函数有其他返回值, 那么可以获取这个返回值
一个常见的做法是把返回值赋予给变量
x = square_sum(3,4)
print(x) #结果为 25
py 通过参数先后位置, 知道 3 对应形参 a
4 对应形参 b, 然后把参数传递给函数 square_sum()
函数执行内部语句, 直到得出返回值 25
再将 25 赋予给变量 x, 最后由 print() 打印出来
来源: http://www.jianshu.com/p/023428f3a535