章节
问答
课签
笔记
评论
占位
占位

Python函数返回值

在上一节课中,我们在函数里面使用return返回了计算的结果,在外部调用这个函数的时候,就可以接收到结果。
有时候函数是没有返回结果的,这个时候从函数获取到的是一个空值None。
我们对list_sum()这个函数进行简单的修改,在函数内把结果打印出来,不通过return返回结果。

def list_sum(l):
    result = 0
    for num in l:
        result = result + num
    print('result is {}'.format(result))
    return

l = [1, 3, 5, 7, 9, 11]
result =list_sum(l) # 调用定义的sum_list函数并获得return返回的结果
print(result) # ==> None

print(result)中,我们得到None的结果,这是合理的,因为在函数内部,我们把结果打印出来了,但是没有把结果返回。
除了返回None、一个值以外,函数也可以返回多个值,在函数中,如果需要返回多个值,多个值之间使用逗号分隔即可,但是需要注意顺序。
比如,定义一个函数data_of_square,接收边长一个参数,同时返回正方形的周长和面积。

def data_of_square(side):
    C = 4 * side
    S = side * side
    return C, S

C, S = data_of_square(16)
print('周长 = {}'.format(C)) # ==> 周长 = 64
print('面积 = {}'.format(S)) # ==> 面积 = 256

也可以使用一个值存储函数返回的多值结果。

result = data_of_square(16)
print(result) # ==> (64, 256)

注意打印的result,其实它是tuple类型,如果我们需要取出结果中的周长或者面积,使用对应位置的下标就可以获得对应的结果。

result = data_of_square(16)
C = result[0]
S = result[1]
print('周长 = {}'.format(C)) # ==> 周长 = 64
print('面积 = {}'.format(S)) # ==> 面积 = 256

任务

定义一个函数sub_sum(),这个函数接收一个列表作为参数,函数返回列表所有奇数项的和以及所有偶数项的和。

?不会了怎么办

参考答案:

def sub_sum(L):
    index = 0
    sum1 = 0
    sum2 = 0
    for item in L:
        if index % 2 == 0:
            sum1 += item
        else:
            sum2 += item
        index += 1
    return sum1, sum2

L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = sub_sum(L)
print('奇数项的和 = {}'.format(result[0]))
print('偶数项的和 = {}'.format(result[1]))
||
1
2
# coding=utf-8
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

+ 我来回答 回答最高可+2积分

已采纳回答 / 慕妹1533931
这是“模”运算,通俗讲就是取余数,奇数模2的结果是1,偶数模2的结果是0

最新回答 / 慕UI9106546
少了段原先首行的注释# coding=utf-8,加上即可运行

最新回答 / 2463094
<...code...>大概,是想给一个惊喜吧

最赞回答 / 慕无忌2375754
c = result[0] 的意思是result中的第一个值。前面调用函数得出长方形的周长和面积,把64,256存到result中,现在把这个第一个值,也就是64存到变量c里,再打印出来。如果还不懂就回去看看前面关于列表索引那一块吧

最新回答 / 瑜伽兔子
这个是题目理解的不一样, 题目中说的是列表的索引的奇数项 和 偶数项 的和, 所以得用index而不是列表得内容的奇数和偶数 的和

最新回答 / qirenhou
'result is {}'.format(result),请问这个是什么意思还有一个简便的写法f'result is {result}'

最新回答 / 陈菲林
什么是tuple元组(tuple)和list一样,也是一个有序容器,在元组中,同样可以包含0个或者多个元素,并且也支持索引访问、切片等操作。下载视频          

已采纳回答 / weixin_慕勒4285689
if else两个语句之间的缩进是一个tab😳

最新回答 / 慕无忌2375754
两个值相加,返回值给符号左侧的变量比如:c=1c+=0.1print(c)输出:c=0.1
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言