Python循环结构之continue

任务描述
本关任务:给定一个列表,计算列表中所有正数的和,并输出结果。

相关知识
针对本关任务,我们可以使用前面学习过的循环结构和分支结构语句相配合完成。不过,在这里我们将介绍另外一个 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值