Python内置了很多函数,可以直接进行调用,要调用函数需要知道函数名和参数,可以通过官方文档进行查阅。
关键字def,Python中使用def来定义函数,依次是函数名、小括弧、括弧中的参数、冒号,函数返回值使用return。
def test(num):
if num > 0:
return '大于0'
else:
return '小于0'
print(test(1))
# 输出结果
# 大于0
当参数传递的类型或个数不正确是Python会提示报错TypeError。 如果是参数类型不正确我们可以调用Python的内置函数isinstance(object, classinfo)来验证参数的类型。 isinstance(object, classinfo) 如果 object 实参是 classinfo 实参的实例,或者是(直接、间接或 虚拟)子类的实例,则返回 true。如果 object 不是给定类型的对象,函数始终返回 false。如果 classinfo 是对象类型(或多个递归元组)的元组,如果 object 是其中的任何一个的实例则返回 true。 如果 classinfo 既不是类型,也不是类型元组或类型的递归元组,那么会触发 TypeError 异常。
def test(num):
if not (isinstance(num, (int,float))):
raise TypeError('参数数据类型错误')
if num > 0:
return '大于0'
else:
return '小于0'
print(test('123'))
# 输出结果
# Traceback (most recent call last):
# File "def.py", line 8, in
# print(test('123'))
# File "def.py", line 3, in test
# raise TypeError('参数数据类型错误')
# TypeError: 参数数据类型错误
参数设定默认值 def test(x,y = 2): rx = x + y ry = x - y return rx,ry result_x, result_y = test(10) print(result_x, result_y, test(10)) # 输出结果 # 12 8 (12, 8)
Python在函数中可以返回多个值,实际上是返回了一个元祖,利用多个变量接收函数返回值,会按位置给变量分配
def test(x,y):
rx = x + y
ry = x - y
return rx,ry
result_x, result_y = test(10,5)
print(result_x, result_y, test(10,5))
# 输出结果
# 15 5 (15, 5)
如果接收变量比返回值多Python会报错。 Traceback (most recent call last): File "def.py", line 14, in result_x, result_y, result = test(10,5) ValueError: not enough values to unpack (expected 3, got 2)