第三章 函数和模块
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()打印出来