如果程序需要有多个返回值,则既可将多个值包装成列表之后返回,也可直接返回多个值。如果Python函数直接返回多个值,Python会自动将多个返回值封装成元组。如下程序示范了函数直接返回多个值的情形。
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024/01
# @Author : Laopi
def sum_and_avg(list):
sum = 0
count = 0
for x in list:
#如果元素x是数值
if isinstance(x,int) or isinstance(x,float):
count+=1
sum+=x
return sum,sum/count
listdemo = [1,2,3,4,5,55,6.3,-9,10]
#将获取的sum_and_avg函数返回的多个值,多个返回值将封装成元组
a = sum_and_avg(listdemo)#①
print(a)
上面程序中的第13行代码返回了多个值,当①号代码调用该函数时,该函数返回的多个值将会被自动封装成元组,因此程序看到a是一个包含两个元素(由于被调用函数返回了两个值)的元组。此外,也可使用 Python 提供的序列解包功能,直接使用多个变量接收函数返回的多个值。例如如下代码(程序清单同上)。
#使用序列解包来获取多个返回值
a1,a2 = sum_and_avg(listdemo)#②
print(a1)
print(a2)
上面程序中的②号代码直接使用两个变量来接收sum_and_avg()函数返回的两个值,这就是利用了Python提供的序列解包功能。