一、定义函数
在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
定义函数的格式如下:
- def 函数名():
- 代码
示例:
- # 定义一个函数,能够完成打印信息的功能
- def printInfo():
- print '------------------------------------'
- print 'Go语言进阶学习'
- print '------------------------------------'
定义带有参数的函数
示例如下:
- def add2num(a, b):
- c = a+b
- print c
调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
- def add2num(a, b):
- c = a + b
- print(c)
-
-
- add2num(11, 22)# 调用带有参数的函数时,需要在小括号中,传递数据
运行结果:
调用函数时参数的顺序
- >>> def test(a,b):
- ... print(a,b)
- ...
- print(test(1, 2))
- 1 2
- print(test(b=1, a=2))
- 2 1
- >>>
- >>> print(test(b=1, 2))
- File "
" , line 1 - SyntaxError: positional argument follows keyword argument
二、调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用。
例:
- # 定义完函数后,函数是不会自动执行的,需要调用它才可以
- printInfo()
三、函数返回多个值
函数可以返回多个值吗?答案是肯定的。
带有返回值的函数
想要在函数中把结果返回给调用者,需要在函数中使用return
如下示例:
- def add2num(a, b):
- c = a+b
- return c
或者
- def add2num(a, b):
- return a+b
保存函数的返回值
如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存
保存函数的返回值示例如下:
- # 定义函数
- def add2num(a, b):
- return a + b
-
-
- # 调用函数,顺便保存函数的返回值
- result = add2num(100, 98)
-
- # 因为result已经保存了add2num的返回值,所以接下来就可以使用了
- print(result)
运行结果:
四、my_abs和内置函数abs的差别
- print(my_abs('A'))
当传入了不恰当的参数时,内置函数abs会检查出参数错误,而定义的my_abs没有参数检查,会导致if语句出错,出错信息和abs不一样。
修改一下my_abs的定义,数据类型检查可以用内置函数isinstance()实现:
- def my_abs(x):
- if not isinstance(x, (int, float)):
- raise TypeError('bad operand type')
- if x >= 0:
- return x
- else:
- return -x
添加了参数检查后,如果传入错误的参数类型,函数就可以抛出一个错误:
- my_abs('A')
五、总结
本文基于Python基础,介绍了函数定义。定义函数时,需要确定函数名和参数个数;如果有必要,可以先对参数的数据类型做检查;函数体内部可以用return随时返回函数结果。