任务描述
本关任务:给定一个列表,计算列表中所有正数的和,并输出结果。
相关知识
针对本关任务,我们可以使用前面学习过的循环结构和分支结构语句相配合完成。不过,在这里我们将介绍另外一个 Python 语句 —— continue 来完成本关任务。
continue 语句
while 循环和 for 循环都可以使用 continue 语句,这个语句的作用是结束本次循环,重新开始下一次循环。
以下场景便模拟了 for 循环结构跳出当前循环的现实场景:
全班同学的试卷为一个序列,老师在批阅一个班同学的试卷时,需要从第一个同学开始一个一个批阅,然后根据每个同学的具体答卷情况给出最后得分。如果评阅到某张试卷时发现这位同学缺考,为空白卷,那么就不评阅这张试卷,直接评阅下一张。当全部同学的试卷都评阅完毕时,结束评阅,跳出循环。跳过评阅空白卷的过程就相当于使用了 continue 语句。
continue 语句与 break 语句使用方法一致,但是作用不同,continue 的基本形式为:
for 变量 in 序列:
执行语句
if 表达式:
continue
我们通过代码来实现上述场景,假设班上有 5 个同学,我们用 0 表示白卷:
student = [10, 50, 0, 62, 90]
for stu in student:
if stu == 0: # 如果stu等于0,跳出本次循环
print("白卷")
continue
print("分数为%d"% stu)
执行结果:
分数为10
分数为50
白卷
分数为62
分数为90
continue 语句同样无法结束循环,只能跳过本次循环。
num = 0
while num < 10:
if num == 5: # 如果num等于5,跳出本次循环
num += 1
continue
print(num)
num += 1
执行结果:
0
1
2
3
4
6
7
8
9
当发生循环嵌套时,continue 只会跳过当前循环,而不会影响其他层的循环。
for x in range(2):
for y in range(3):
if y == 2:
continue
print("第二次循环第%d次" % y)
print("第一次循环第%d次" % x)
执行结果:
第二次循环第0次
第二次循环第1次
第一次循环第0次
第二次循环第0次
第二次循环第1次
第一次循环第1次
从执行结果可以得知,第二层循环本来要运行 3 次,但是当 y 等于 2 时跳出了本次循环,但是并没有影响第一层循环。
注意:在 Python 中,break、continue不能直接使用,应和分支语句配合使用。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。输出格式请参考测试集中的预期输出。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
"""
任务:计算给定列表中所有正数的和。
"""
list_num = [-5, 0, 5, 8, 101, -16, -15, 56, 20, -32, 20, 0, -19, 50, 100, 205, 302, 1901, 302]
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 使用continue语句计算给定列表中所有正数的和,
##########End##########
#按照输出格式打印结果
print("正数和为%d"% sum_value)
答案
list_num = [-5, 0, 5, 8, 101, -16, -15, 56, 20, -32, 20, 0, -19, 50, 100, 205, 302, 1901, 302]
sum_value = 0
##########Begin##########
# 使用continue语句计算给定列表中所有正数的和
for num in list_num:
if num <= 0: # 遇到非正数时跳过当前循环
continue
sum_value += num # 累加正数
##########End##########
# 按照输出格式打印结果
print("正数和为%d" % sum_value)
323

被折叠的 条评论
为什么被折叠?



