ITPub博客

首页 > 应用开发 > Python > 好程序员Python培训分享函数返回值的示例代码详解

好程序员Python培训分享函数返回值的示例代码详解

原创 Python 作者:好程序员 时间:2020-12-01 15:06:26 0 删除 编辑

   文中通过示例代码介绍的非常详细,下面我们一起来看一下吧。

0x  00 返回值简介

   回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍print return 的区别, print 仅仅是打印在控制台,而 return 则是将 return 后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事。

 

函数需要先定义后调用,函数体中return 语句的结果就是返回值。如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None ,类型也是 'NoneType'

 

return 语句的作用:结束函数调用、返回值

 

0x   01 指定返回值与隐含返回值

 

函数体中return 语句有指定返回值时返回的就是其值

 

函数体中没有return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType ,与 return returnNone 等效,都是返回 None

 

指定return 返回值函数举例:

 

def showplus(x):

  print(x)

  return x + 1

    

num = showplus(6)

add = num + 2

print(add)

 

输出结果:

 

6

9

 

隐含returnNone 举例:

 

def showplus(x):

  print(x)

  

num = showplus(6)

print(num)

print(type(num))

 

输出结果:

 

6

None

<class 'NoneType'>

 

0x02return 语句位置与多条 return 语句

 

python 函数使用 return 语句返回 " 返回值 " ,可以将其赋给其它变量作其它的用处

 

所有函数都有返回值,如果没有return 语句,会隐式地调用 returnNone 作为返回值

 

一个函数可以存在多条return 语句,但只有一条可以被执行,如果没有一条 reutrn 语句被执行,同样会隐式调用 returnNone 作为返回值

 

如果有必要,可以显式调用returnNone 明确返回一个 None( 空值对象 ) 作为返回值,可以简写为 return ,不过 python 中懒惰即美德,所以一般能不写就不写

 

如果函数执行了return 语句,函数会立刻返回,结束调用, return 之后的其它语句都不会被执行了

 

举例1

 

def showplus(x):

  print(x)

  return x + 1

  print(x + 1) # 该语句会执行么

print(showplus(6))

 

输出结果:

 

6

7

 

举例2

 

def showplus(x):

  print(x)    # 5

  return x + 1  # 6

  return x + 2  # 该语句也不会被执行

print(showplus(5))

 

输出结果:

 

5

6

 

举例3

 

def guess(x):

  if x > 3:

    return "> 3"

  else:

    return "<= 3"

print(guess(10))

print(guess(2))

 

输出结果:

 

> 3

<= 3

 

举例4:

 

# for .. else .. 语句 (意外终止情况)

# 表示如果 for 语句段的内容正常循环结果才会执行 else 段的语句,如果 for 在循环过程中时被 break 或者 return 语句意外终止循环,就不会执行 else 段中的语句。

def fn(x):

  for i in range(x):

    if i > 4:

      return i

  else:

    print("{} is not greater than 4".format(x))

print(fn(3))

print(fn(6))

 

返回结果:

 

is not greater than 4

None

 

0x03 返回值类型

 

无论定义的是返回什么类型,return 只能返回单值,但值可以存在多个元素。

 

return[1,3,5] 是指返回一个列表,是一个列表对象, 1,3,5 分别是这个列表的元素

 

return1,3,5 看似返回多个值,隐式地被 Python 封装成了一个元祖返回

 

举例1

 

def fn():

  return 3  # 单值时,返回的是什么类型

   

print(fn())

print(type(fn()))

 

输出结果:

 

<class 'int'>    #int 整数类型

 

举例2

 

def showlist():

  return [1,3,5]  # 多元素,返回的是什么类型

print(type(showlist()))

print(showlist())

 

输出结果:

 

<class 'list'>

[1, 3, 5]    # 列表类型

 

举例3

 

def showlist():

  return (2,4,6)  # 多元素,返回的是什么类型

print(type(showlist()))

print(showlist())

输出结果:

<class 'tuple'>    # 元祖类型

(2, 4, 6)

 

举例4

 

def showlist():

  return 2,4,6  # 多值时,不指定类型

print(type(showlist()))

print(showlist())

输出结果:

<class 'tuple'>    # 默认封装成元祖类型

 

0x04 函数嵌套

 

函数有可见范围( 内外可见关系 ) ,这就是作用域的概念。

 

内部函数不能被外部直接调用,会抛异常NameError

 

举例1

 

def outer():

  def inner(): # 可以理解为内部函数

    print("inner")

  print("outer")

outer()

输出结果:

outer

 

此时如果调用outer() ,只会执行 print("outer") ,因为 inner 虽然在 outer 函数内,但它也是一个函数,函数如果要调用,就必须用 ' 函数名 ()' 方式。

 

举例2

def outer():

  def inner():

    print("inner")

  print("outer")

inner()  # 外部无法引用内部函数,内部函数只在本地作用域有效

输出结果,抛出异常:

Traceback (most recent call last):

  File "C:/python/return_value.py", line 6, in <module>

    inner()

NameError: name 'inner' is not defined

 

举例3

 

def outer():

  def inner():

    print("inner")

  print("outer")

  inner()

outer()

输出结果:

outer

inner

 

此节介绍了函数的返回值、返回值的作用,指定与不指定返回值时的不同,返回值类型,以及函数嵌套时返回值的使用。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913864/viewspace-2738495/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-20

  • 博文量
    342
  • 访问量
    155234