提问人:Ben Turner 提问时间:10/8/2023 最后编辑:Ben Turner 更新时间:10/8/2023 访问量:48
了解 break 语句在 zybook 中的工作原理 python 问题 5.10.1
Understanding how a break statement functions in zybook question for python 5.10.1
问:
这是一个周末,我的教授不回复电子邮件,我们在课堂上复习了休息语句,我确信我理解了它,但我总是得到这样的错误问题(它希望你显示输出):
stop = int(input())
result = 0
for a in range(3):
for b in range(4):
result += a + b
print(result)
if result > stop:
break
我用输入“17”把它放到 Pycharm 中(我之前尝试过很多次自己得到答案,但 zybooks 在他们的挑战活动中给你随机的问题,它没有给出一个有用的解释),因为我想尝试逆向工程为什么解决方案是这样的, 输出为:
6
16
30
首先,我不确定为什么在它中断后它会输出最后一个数字,因为外部“for”循环没有 print 语句。如果我忽略这一点,我得到的输出是:
6 16
18
我甚至写下了我认为RAM如何存储这些值并更改它们(我的教授说,如果你遇到麻烦,这是一个好主意,因为它有助于逐步完成计算机所采取的过程。下面包含该图片的链接,如果它没有意义,我很抱歉。https://imgur.com/a/t5o24Mo
我不是想作弊,这个作业是星期天到期的,如果可以的话,我会给我的教授发电子邮件寻求帮助。
我试图手动遍历每个迭代,并弄清楚每个变量是什么以及它如何改变每个迭代。我正确地完成了外循环的前 2 次迭代,但 break 语句是我遇到问题的地方。
答:
1赞
John Gordon
10/8/2023
#1
如果你不确定代码为什么要做某事,一个帮助你弄清楚的简单方法是添加更多的 print 语句,这样你就可以在执行的每个步骤中看到变量。
像这样的东西:
for a in range(3):
print("At the top of a range loop, a is:", a)
for b in range(4):
print("At the top of b range loop, b is:", b)
print("a+b is:", a+b)
print("Before adding, result is:", result)
result += a + b
print("After adding, result is now:", result)
if result > stop:
print("result", result, "is bigger than stop", stop, "so we will break the loop")
break
else:
print("result", result, "is not bigger than stop", stop, "so the loop will keep going")
评论
0赞
Ben Turner
10/8/2023
我一定会使用这个绝妙的主意,这很有帮助。
上一个:我怎样才能提前从区块中归还东西?
评论
for b in range(4):
for b in range(4):
for a in range(3):
for a in range(3):