鱼C论坛

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

[已解决]《第016课:序列》的另一个问题

[复制链接]
发表于 2020-1-13 16:15:27 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼的《第016课:序列》,课后作业中最后一道题:

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

答案:

1.        def sum(x):
2.            result = 0
3.          
4.            for each in x:
5.                if (type(each) == int) or (type(each) == float):
6.                    result += each
7.                else:
8.                    continue
9.       
10.            return result
11.       
12.        print(sum([1, 2.1, 2.3, 'a', '1', True]))

请问:
1> result += each 是什么?我记得 += 是加上一个固定数值的简单写法,这里怎么加上了 each?
2> continue 是个固定用法么?Python预制了 continue的用法,是么?
最佳答案
2020-1-13 16:25:51
本帖最后由 jackz007 于 2020-1-13 16:40 编辑
result += each         # 此句是 result = result + each 的简写形式
        continue 和 break 一样,都是循环专用语句,在循环过程中,只要遇到 continue 语句,就会立即结束本次循环,并无条件返回循环代码起点处,开始下一次循环,与执行完循环语句块中最后一条语句时的行为效果完全相同。
        在本例中,continue 是循环语句块的最后一条语句,根本就没有必要存在。
def sum(x):
    result = 0         
    for each in x:
        if (type(each) == int) or (type(each) == float):
            result += each
    return result
print(sum([1, 2.1, 2.3, 'a', '1', True]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-13 16:25:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-1-13 16:40 编辑
result += each         # 此句是 result = result + each 的简写形式
        continue 和 break 一样,都是循环专用语句,在循环过程中,只要遇到 continue 语句,就会立即结束本次循环,并无条件返回循环代码起点处,开始下一次循环,与执行完循环语句块中最后一条语句时的行为效果完全相同。
        在本例中,continue 是循环语句块的最后一条语句,根本就没有必要存在。
def sum(x):
    result = 0         
    for each in x:
        if (type(each) == int) or (type(each) == float):
            result += each
    return result
print(sum([1, 2.1, 2.3, 'a', '1', True]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-1-13 17:57:50 | 显示全部楼层
1. result += each 其实就是 result = result + each,将 result 加上 each 的值赋值给 result。
2. 不是。在循环中使用 continue 表示跳过本轮循环,继续执行下一轮循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-14 10:31:06 | 显示全部楼层
zltzlt 发表于 2020-1-13 17:57
1. result += each 其实就是 result = result + each,将 result 加上 each 的值赋值给 result。
2. 不是 ...

Ok! Thank you!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 16:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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