5.3 return语句
return语句的作用上一节已经介绍了,return语句是函数的值。
关于return语句,总结如下:
(1)return语句返回的数据类型,就是函数的数据类型
(2)函数运行到return语句的时候,函数就结束了,因为函数的计算结果已经出来了。return后面的语句都不会被执行
(3)如果函数没有return语句,那么函数的值是None(没有)
例如下面的代码将打印一个None,因为参数是5的话 ,没有return语句。
def func(x): if x < 0: return xprint(func(5))
函数内部有分支结构的时候,要特别注意这个问题。要确保每个分支都有return语句。下面的例子就有分支没有return,运行后打印None
def func(x): if x > 0: return x elif x >-10: return -xprint(func(4))print(func(-5))print(func(-15))
例如func(-15),得到的值就是None
(4)如果函数本身并不计算任何值,那么这类函数的return后面不能接任何类型的值或表达式,也表示函数结束。
例如下面的代码,先检查参数,是不是为空,然后再打印,如果是空的就没必要打印了,直接返回。
def welcome(name): if name=="": return print("欢迎你"+name)welcome("海绵宝宝")
下面的print1是一个没有返回值但又使用return语句的例子,如果不用return语句,可以用else来达到目的,如print2所示,这两个函数使用起来是一样的。都是打印两个参数较大的那个:
def print1(x,y): if x > y : print(x) return print(y) def print2(x,y): if x > y: print(x) else: print(y)
无返回值的函数不能计算出一个值,作为最终的值,因为这类函数并不是用来计算值的,而是完成某些功能。
我们经常使用的print函数,就是没有返回值的函数。
(5)函数可以同时返回多个值
一个函数计算多个值,这是python函数的重要特征。
我们来看看这个例子:
def abs(x,y): if x<0: x=-x if y<0: y=-y return x,ya,b=abs(-6,-8)print(a,b)
abs函数把两个参数的绝对值返回了,注意第9行代码的写法,a和b分别接收了-6和-8的绝对值
实际上,这种返回多个值的,是一种叫做元组(tuple)的数据类型,详细介绍点击:元组