在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随时返回函数结果。
------------------- End -------------------