Python每天五分钟-函数

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)

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注