python:函数——中
函数(中)
7、函数的返回值
7.1、为什么要返回值?
函数的返回值是用return来得到的,其实在上期的作业中已经用到了return,但是并没有讲解。
首先让我们来了解一下为什么需要通过return来获取函数的返回值,有人会说不是有print嘛,通过print不就可以得到我们要的值嘛,但是这么想是错误的,print只是打印出来给我们看,但实质上并没有取到我们要的值
。
还要就是我们写函数的目的,就是希望封装好这个程序,然后让我们随时可以使用(调用)函数,但是不用return写函数,就不能得到函数得到返回值,这样我们函数写出来就达不到我们的预期。
7.2、返回值的类型
-
任何类型的值都可以作为函数的返回值来返回
包括:常用的数据类型,甚至是函数都可以作为返回值返回 -
数字作为返回值
def fun1():
return 1
print(fun1())
运行结果 》》》1
- None作为返回值
def fun1():
return None
print(fun1())
运行结果 》》》None
- 函数作为返回值(这个比较重要)
def fun1():
def fun2():
print(123)
return 456
return fun2
print(fun1()) # fun1()() = fun2()
运行结果 》》》<function fun1.<locals>.fun2 at 0x0000016E1D3D6AE8>
print(fun1()())
运行结果 》》》
123
456
这里讲一下 fun1()() = fun2(),其实很简单的,fun1()的返回值就是函数fun2,稍微转化一下就可以了。如图,也可以这样理解
- 返回值的结构
写了return xxx(返回的值)的函数,最后返回的值就是 xxx
如果你不写return xxx 和 只写一个return (如下例),返回的结果都是None
函数的调用等于函数的的返回值
# 不写return
def fun1():
def fun2():
print(123)
return fun2
print(fun1()())
运行结果 》》》
123
None
7.3、return的特性
return的特性:
在函数中,return后面的代码都不会执行, return一旦执行,函数自动结束,个人感觉与break的用法有点相似,但是比break还绝,break只是中断循环,然后循环后的不运行,但是如果是内层循环中的break,还是影响不到外面的代码,但是return不一样,只要看见return,管你在哪,直接弹出。让我们看几个例子,证实一哈!!
- 首先来个最简单的
def fun3():
print(1111)
return
print(2222)
fun3()
运行结果 》》》1111
运行结果只有1111,说明他确实是中断了
- 函数循环中
这里分别用break,continue,以及return来运行,看看结果
# break 运行
def fun4():
for i in range(5):
if i == 3:
break
# continue
# return
print(i)
print('循环执行结束')
fun4()
运行结果 》》》
0
1
2
循环执行结束
# continue 运行
def fun4():
for i in range(5):
if i == 3:
# break
continue