【问题标题】:How do you read loops?你如何阅读循环?
【发布时间】:2015-01-27 15:40:01
【问题描述】:

评估循环时的思考过程是什么?我真的不知道 shell 是如何得到这些答案的(A:12,B:2,C:4,D:6)。

A, B, C, D = 0, 0, 0, 0

while A <= 10:
    A += 2
    if A%3 == 0:
        B += 1
    else:
        C += 1
    D += 1

【问题讨论】:

  • 首先你需要知道变量的初始值是什么,在你的sn-p中没有说明。
  • 您可能想在预览面板中查看您的帖子,而不是闭上眼睛点击“发送”。
  • 另外,请重新缩进您的代码。缩进对于理解 Python 控制结构极其很重要。
  • 刚刚进行的编辑不会产生询问者指示的输出。 D += 1 需要位于循环的顶层。
  • 拿起笔和纸,创建一个包含所有变量列的表格,然后开始手动评估您的程序,每当变量值发生变化时更新相关的表格列。

标签: python loops if-statement for-loop while-loop


【解决方案1】:

如果你把它分解一下,也许你会更容易阅读:

A = 0

while A <= 10:
    A += 2

你能读懂这个吗?你明白它是如何到达12的吗?

A, D = 0, 0

while A <= 10:
    A += 2
    D += 1

还包括D 应该不会让它变得更难。

你能单独阅读和理解if-statement 吗?

if A%3 == 0:
    B += 1
else:
    C += 1

当它在循环内时呢?

A, B, C, D = 0, 0, 0, 0

while A <= 10:
    A += 2
    if A%3 == 0:
        B += 1
    else:
        C += 1
    D += 1

BC 相关;它们中的一个在每次迭代中都会递增,因此它们的总和应该与 D 相同,它们确实如此。

您现在在阅读和理解本文时是否有任何具体问题? :)

【讨论】:

    【解决方案2】:

    其他答案都很好。我强烈建议您用笔和纸检查一下,以确保您了解正在发生的事情。

    在循环内使用print 也有助于查看程序运行时发生的情况。

    A,B,C,D = 0,0,0,0
    
    while A <= 10:
        A += 2
        if A%3 == 0:
            B += 1
        else:
            C += 1
        D += 1
        print "A =", A, " B =", B, " C =", C, " D =", D
    

    输出会在每次循环迭代结束时显示A, B, C, D 的值。

    A = 2  B = 0  C = 1  D = 1
    A = 4  B = 0  C = 2  D = 2
    A = 6  B = 1  C = 2  D = 3
    A = 8  B = 1  C = 3  D = 4
    A = 10  B = 1  C = 4  D = 5
    A = 12  B = 2  C = 4  D = 6
    

    你可以看到:

    • A 每次循环迭代都会增加 2
    • B 增加 1 IF A 可被 3 整除,即 A%3 == 0
    • C 增加 1 IF A 可被 3 整除
    • D 每次循环迭代都会增加 1

    当涉及到循环时,您可以将缩进代码的集合视为单个“块”代码,每次循环重复都会执行一次。此代码块的正式术语是block。它也适用于if/else 语句。

    【讨论】:

    • 这样说的很清楚了!谢谢我现在明白了
    【解决方案3】:

    while 循环的主体将执行 6 次(对于 A=0,2,4,6,8,10)。

    • 在每次迭代中,A 递增 2,因此在第一条语句之后 在循环中,它的值为 2,4,6,8,10,12
    • B 加一两次(当A=6A=12 时);
    • 对于 A 的剩余值,C 加一。
    • D 每次循环都会递增。

    因此,在循环之后,A=12B=2C=4D=6

    【讨论】:

      猜你喜欢
      • 2010-09-10
      • 2017-09-12
      • 1970-01-01
      • 2013-11-15
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2011-11-14
      相关资源
      最近更新 更多