文章目录
一、函数
函数介绍
什么是函数
请看如下代码:
print " _ooOoo_ "
print " o8888888o "
print " 88 . 88 "
print " (| -_- |) "
print " O\\ = /O "
print " ____/`---'\\____ "
print " . ' \\| |// `. "
print " / \\||| : |||// \\ "
print " / _||||| -:- |||||- \\ "
print " | | \\\\\\ - /// | | "
print " | \\_| ''\\---/'' | | "
print " \\ .-\\__ `-` ___/-. / "
print " ___`. .' /--.--\\ `. . __ "
print " ."" '< `.___\\_<|>_/___.' >'"". "
print " | | : `- \\`.;`\\ _ /`;.`/ - ` : | | "
print " \\ \\ `-. \\_ __\\ /__ _/ .-` / / "
print " ======`-.____`-.___\\_____/___.-`____.-'====== "
print " `=---=' "
print " "
print " ............................................. "
print " 佛祖镇楼 BUG辟易 "
print " 佛曰: "
print " 写字楼里写字间,写字间里程序员; "
print " 程序人员写程序,又拿程序换酒钱。 "
print " 酒醒只在网上坐,酒醉还来网下眠; "
print " 酒醉酒醒日复日,网上网下年复年。 "
print " 但愿老死电脑间,不愿鞠躬老板前; "
print " 奔驰宝马贵者趣,公交自行程序员。 "
print " 别人笑我忒疯癫,我笑自己命太贱; "
print " 不见满街漂亮妹,哪个归得程序员?"
运行后的现象:
佛祖镇楼
想一想:
如果一个程序在不同的地方需要输出“佛祖镇楼”,程序应该怎样设计?
if 条件1:
输出‘佛祖镇楼’
...(省略)...
if 条件2:
输出‘佛祖镇楼’
...(省略)...
如果需要输出多次,是否意味着要编写这块代码多次呢?
小结:
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
函数的定义与调用
<1>定义函数
定义函数的格式如下:
def 函数名():
代码
# 定义一个函数,能够完成打印信息的功能
def printInfo():
print '------------------------------------'
print ' 人生苦短,我用Python'
print '------------------------------------'
<2>调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用
demo:
# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()
函数的文档说明
def test(a,b):
"用来完成对2个数求和"
print("%d"%(a+b))
test(11,22)
33
当同事或者自己需要查看 函数(test)的说明时:
(也可以按住键盘CTRL 然后鼠标点击目标函数)
help(test) #能够看到test函数的相关说明
Help on function test in module __main__:
test(a, b)
用来完成对2个数求和
函数的参数
思考一个问题,如下:
现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?
def add2num():
a = 11
b = 22
c = a+b
print c
没错,在我们想要调用这个函数的时候,发现根本无从下手,不知道怎么使用这个函数。
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数
<1> 定义带有参数的函数
示例如下:
def add2num(a, b): #a,b即这个函数的参数
c = a+b
print c
<2> 调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
def add2num(a, b):
c = a+b
print c
add2num(11, 22) #调用带有参数的函数时,需要在小括号中,传递数据
调用带有参数函数的运行过程:
<3> 调用函数时 参数的顺序
#定义函数==============
def test(a,b):
print(a,b)
——————调用示例——————
test(1,2) #调用
1 2 #输出
——————调用示例——————
test(b=1,a=2) #调用
2 1 #输出
——————调用示例——————
test(b=1,2) #调用后报异常
File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument
小结
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
二、返回值
<1>“返回值”介绍
现实生活中的场景:
去自动售货机买饮料,自动售货只卖3种价格的饮料,投币口只支持5元、10元、20元这3种规格的纸币。
在这个例子中:
函数:售货机
形参:售货机投币口
实参:3种不同规格的纸币
返回值:对应价格的饮料
你往售货机里放不同面额的纸币,售货机的取货口会落下相应规格的饮料,这就完成了一个完整的函数调用。
开发中的场景:
定义了一个函数,完成了获取室内温度,想一想是不是应该把这个结果给调用者,只有调用者拥有了这个返回值,才能够根据当前的温度做适当的调整
综上所述:
- 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果
<2>带有返回值的函数
想要在函数中把结果返回给调用者,需要在函数中使用return
如下示例:
def add2num(a, b):
c = a+b
return c
或者
def add2num(a, b):
return a+b
<3>保存函数的返回值
如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存
保存函数的返回值示例如下:
#定义函数
de