一、定义函数 在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 定义函数的格式
在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 "<stdin>", 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)登录后复制
运行结果:
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随时返回函数结果。