欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

十二、python基础:函数的返回值return

程序员文章站 2022-06-15 17:17:38
...

十二、python基础:函数的返回值return

1、我们为什么需要return返回值

在刚开始学的时候,有些同学可能会疑惑return返回值可以给我们带来什么,我们需要函数反馈它的处理结果的话,直接使用print()打印出来不就好了吗?

在实际开发项目中,print()只是我们用来尝试打印结果,调试代码用的,它是可以输出结果,但是只能输出在控制台给我们看。如果你想在其他函数中使用这个函数的处理结果,那print()帮不到你。

这时候就需要用到return了。

举个例子,我有一个函数A,只要给它传数据,它就能对数据进行清洗,过滤掉无用数据,但我需要它把处理后的数据给到下一个函数继续处理,那么这时候就需要用到返回值了,让它处理后return出来。

2、返回值的作用

2.1、反馈结果:

return可以将函数运行的结果反馈给函数,在外部调用函数的时候,使用一个变量接收即可将函数运行的结果输出;但如果函数内部没有返回值,也没有打印的动作,在外部调用该函数的时候,你在控制台上看不到任何输出,也无法获取函数运行的结果(无返回值将默认返回None,也就是隐性返回值)

这是一个简单的加法计算的例子:
先定义了add函数,给它传2个参数,就能计算2个参数的和。在函数外部,你使用print(add(1, 2)),它可以把计算的结果打印出来,但如果你想要在另一个函数中调用add函数的处理结果进行判断,需要先用一个变量去接收它的处理结果:ret = add(1, 2)

def add(x,y):
    a = x + y
    return a
# 直接将add计算的结果打印出来
print(add(1, 2))
# 直接拿到add计算的结果,进行其他运算
print(100 + add(1, 2))
# 在函数外先用变量接收处理结果,方便后面调用这个结果。
ret = add(1, 2)
if ret == 3:
	print('两数之和小于3')

十二、python基础:函数的返回值return

2.2、流程控制:

return用在函数中,不仅可以将函数执行的结果返回,还能控制这个函数的结束。不管你函数下方还有没有代码,只要它一步步符合条件,走到return这一行,整个函数就结束了。

看下方的代码,猜测一下控制台会不会输出:“第二次打印”。

def add(x,y):
	if x == 1:
		a = x + y
		print('第一次打印')
    	return a
   	print('第二次打印')
   	
add(1, 2)

答案是不会,我们传的参数是x=1,符合判断条件,流程已经走到return这边了,整个函数就结束了。
十二、python基础:函数的返回值return

3、return和break比较

return和break很相似,都能用来控制流程的结束。
但它们有2点区别:
1、return可以有返回值也可以无返回值。break无返回值;
2、return通常是用在函数中的,如果你想在循环内使用return控制循环结束,必须保证它最外层是一个函数,否则执行的结果就会报一个语法错误。而break则是要求你必须用在循环中,如果它不是循环,只是一个函数,那也不能使用break。

4、return返回值的数量

4.1、return可以没有返回值,当它没有返回值的时候,其实就是返回了一个None。

4.2、可以只有1个返回值;

4.3、可以有多个返回值。
如果有多个返回值的话,默认是按照元组的形式返回的。如果你只用一个变量去接收多个返回值,收到的结果就是一个元组。如果你想把一一接收每个返回值,那就使用多个变量去接收。
例如:

def add(x, y):
	x += 1
	y += 2
	return x,y
# 直接打印出来是一个元组
print(add(1, 2))
# 使用2个变量去接收,可以分别接收到返回的2个值
a, b = add(1, 2)
print(a, b)

十二、python基础:函数的返回值return
但你也可以让它按照列表的形式返回,并且用列表的索引取值,取出每个返回值。

def add(x, y):
	x += 1
	y += 2
	return [x,y]
# 直接打印出来是一个元组
print(add(1, 2))
# 接收列表的时候,取出返回值可以使用列表的索引取值
a = add(1, 2)[0]
b = add(1, 2)[1]
print(a, b)

十二、python基础:函数的返回值return