Python 函数返回值的示例代码
0x00返回值简介
回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事。
函数需要先定义后调用,函数体中return语句的结果就是返回值。如果一个函数没有reutrn语句,其实它有一个隐含的return语句,返回值是None,类型也是'NoneType'。
return语句的作用:结束函数调用、返回值
0x01指定返回值与隐含返回值
函数体中return语句有指定返回值时返回的就是其值
函数体中没有return语句时,函数运行结束会隐含返回一个None作为返回值,类型是NoneType,与return、returnNone等效,都是返回None。
指定return返回值函数举例:
defshowplus(x): print(x) returnx+1 num=showplus(6) add=num+2 print(add)
输出结果:
6
9
隐含returnNone举例:
defshowplus(x): print(x) num=showplus(6) print(num) print(type(num))
输出结果:
6
None
0x02return语句位置与多条return语句
python函数使用return语句返回"返回值",可以将其赋给其它变量作其它的用处
所有函数都有返回值,如果没有return语句,会隐式地调用returnNone作为返回值
一个函数可以存在多条return语句,但只有一条可以被执行,如果没有一条reutrn语句被执行,同样会隐式调用returnNone作为返回值
如果有必要,可以显式调用returnNone明确返回一个None(空值对象)作为返回值,可以简写为return,不过python中懒惰即美德,所以一般能不写就不写
如果函数执行了return语句,函数会立刻返回,结束调用,return之后的其它语句都不会被执行了
举例1:
defshowplus(x): print(x) returnx+1 print(x+1)#该语句会执行么 print(showplus(6))
输出结果:
6
7
举例2:
defshowplus(x): print(x)#5 returnx+1#6 returnx+2#该语句也不会被执行 print(showplus(5))
输出结果:
5
6
举例3:
defguess(x): ifx>3: return">3" else: return"<=3" print(guess(10)) print(guess(2))
输出结果:
>3
<=3
举例4:
#for..else..语句(意外终止情况) #表示如果for语句段的内容正常循环结果才会执行else段的语句,如果for在循环过程中时被break或者return语句意外终止循环,就不会执行else段中的语句。 deffn(x): foriinrange(x): ifi>4: returni else: print("{}isnotgreaterthan4".format(x)) print(fn(3)) print(fn(6))
返回结果:
isnotgreaterthan4
None
0x03返回值类型
无论定义的是返回什么类型,return只能返回单值,但值可以存在多个元素。
return[1,3,5]是指返回一个列表,是一个列表对象,1,3,5分别是这个列表的元素
return1,3,5看似返回多个值,隐式地被Python封装成了一个元祖返回
举例1:
deffn(): return3#单值时,返回的是什么类型 print(fn()) print(type(fn()))
输出结果:
#int整数类型
举例2:
defshowlist(): return[1,3,5]#多元素,返回的是什么类型 print(type(showlist())) print(showlist())
输出结果:
[1,3,5] #列表类型
举例3:
defshowlist(): return(2,4,6)#多元素,返回的是什么类型 print(type(showlist())) print(showlist())
输出结果:
#元祖类型
(2,4,6)
举例4:
defshowlist(): return2,4,6#多值时,不指定类型 print(type(showlist())) print(showlist())
输出结果:
#默认封装成元祖类型
0x04函数嵌套
函数有可见范围(内外可见关系),这就是作用域的概念。
内部函数不能被外部直接调用,会抛异常NameError。
举例1:
defouter(): definner():#可以理解为内部函数 print("inner") print("outer") outer()
输出结果:
outer
此时如果调用outer(),只会执行print("outer"),因为inner虽然在outer函数内,但它也是一个函数,函数如果要调用,就必须用'函数名()'方式。
举例2:
defouter(): definner(): print("inner") print("outer") inner()#外部无法引用内部函数,内部函数只在本地作用域有效
输出结果,抛出异常:
Traceback(mostrecentcalllast):
File"C:/python/return_value.py",line6,in
inner()
NameError:name'inner'isnotdefined
举例3:
defouter(): definner(): print("inner") print("outer") inner() outer()
输出结果:
outer
inner
总结:
此节介绍了函数的返回值、返回值的作用,指定与不指定返回值时的不同,返回值类型,以及函数嵌套时返回值的使用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。