鱼C论坛

 找回密码
 立即注册
查看: 786|回复: 3

[已解决]关于课后作业第16讲

[复制链接]
发表于 2019-4-23 20:44:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
视频中我们说 sum() 这个BIF有个缺陷,就是如果参数里有字符串类型的话就会报错,请写出一个新的实现过程,自动“无视”参数里的字符串并返回正确的计算结果


def sum(x):
        result = 0
        for each in x:
                if (type(each) == int) or (type(each) == float):
                result += each
        else:
                continue
        return result
print(sum([1, 2.1, 2.3, 'a', '1', True]))


这里的一开始的result等于0是???

不是把列表中的第0个数赋值了?
最佳答案
2019-4-23 21:19:38
def sum(x):
        result = 0                       # 定义变量 result 并赋值为 0,初始化的意思,
        for each in x:
                if (type(each) == int) or (type(each) == float):
                result += each       # 符合条件的 元素,会累加求和 并保存到 result 里面
        else:
                continue
        return result                   # 返回 result 给 主函数
print(sum([1, 2.1, 2.3, 'a', '1', True]))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-23 20:59:54 From FishC Mobile | 显示全部楼层
这和列表有神马关系呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-23 21:04:06 | 显示全部楼层
Python里变量需要赋值使用,所以result = 0,其实只要赋值就行,不一定是0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-23 21:19:38 | 显示全部楼层    本楼为最佳答案   
def sum(x):
        result = 0                       # 定义变量 result 并赋值为 0,初始化的意思,
        for each in x:
                if (type(each) == int) or (type(each) == float):
                result += each       # 符合条件的 元素,会累加求和 并保存到 result 里面
        else:
                continue
        return result                   # 返回 result 给 主函数
print(sum([1, 2.1, 2.3, 'a', '1', True]))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-10 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表