[Python系列] Python函数及函数式编程(四)

第三节 返回值

凡是运算,皆有返回值.函数的本质是"一个运算"的抽象,因此函数本身必定有返回值

Python函数的返回值比较灵活,前面我们使用return返回结果的函数,基本都是单一返回值,本节我们讨论一下经常可以看到的"无返回值"和"多返回值"的函数定义.

无返回值函数

首先,我们需要明确一点,在Python中并不存在"无返回值参数",因为凡是运算,皆有返回值,只是有些函数看起来没有返回值罢了

在某些情况下,有的函数只是为了处理某个过程,比如输出Hello World

def say_hello(){
    print("Hello World")
}

这样的函数并没有使用return显式的返回一个结果,我们可以把它看做"无返回值"的函数

需要注意,打印的结果是输出而不是返回值

我们尝试打印函数的返回值:

def say_hello():
   print("Hello World")

say_hello()
# "Hello World"
print(say_hello())
# "Hello World"
# None

def say_hello():
   print("Hello World")
   return "haha"

say_hello()
# "Hello World"
print(say_hello())
# "Hello World"
# "haha"

由上述两例对比,可知,如果函数不使用return显式的返回结果,函数的返回值为None

同样,我们也可以显式的返回None,或者只写一个return,他们的效果是一样的

def say_hello():
   print("Hello World")
   return None
	
say_hello()
# "Hello World"
print(say_hello())
# "Hello World"
# None

def say_hello():
   print("Hello World")
   return
	
say_hello()
# "Hello World"
print(say_hello())
# "Hello World"
# None

say_hello函数返回None显然是多此一举.但是有时使用return或者return None是很有必要的

def sum(*numbers,multiple=1):
    """定义可变参数并验证"""
    if len(numbsers) == 0:
        return
    total = 0.0
    for number in numbers:
        total += number
   	return total*multiple

print(sum(30.0,80.0))
# 110.0
print(sum(multiple=2))
# None

如果numbers中数据是空的,后面的求和计算也没有什么意义了.return或者return None在此处的作用是终止函数继续执行.

多返回值函数

同"无返回值"函数一样,在Python中,也不存在"多返回值函数",我们无论定义的返回值是什么,return只能返回单值,但值可以存在很多元素.

def showlist():
    return [1,3,5]

print(type(showlist()))
# <class 'list'>

print(showlist())
# [1, 3, 5]

该例看起来返回了三个值,其实只返回了一个列表

def showlist():
    return 2,4,6

print(type(showlist()))
# <class 'tuple'>

print(showlist())
# (2, 4, 6)

上例看起来更像是返回了三个值,但是其实Python在返回时,将值封装成了元组

小结

  1. 凡是运算皆有返回值
  2. 没有显式返回值的函数返回值为None
  3. returnreturn None可以终止函数继续向下执行
  4. 无论定返回什么类型,return只能返回单值,但值可以存在多个元素
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值