《第016课:序列》的另一个问题
小甲鱼的《第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> result += each 是什么?我记得 += 是加上一个固定数值的简单写法,这里怎么加上了 each?
2> continue 是个固定用法么?Python预制了 continue的用法,是么?
本帖最后由 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. result += each 其实就是 result = result + each,将 result 加上 each 的值赋值给 result。
2. 不是。在循环中使用 continue 表示跳过本轮循环,继续执行下一轮循环。 zltzlt 发表于 2020-1-13 17:57
1. result += each 其实就是 result = result + each,将 result 加上 each 的值赋值给 result。
2. 不是 ...
Ok! Thank you!
页:
[1]