【发布时间】:2017-05-14 07:31:29
【问题描述】:
前几天我买了一本书叫《Python for Kids (For Dummies)》。 在第 47 页有一个简单代码块的示例:
a = 2
while a < 10:
a = a + 1
print (a)
这导致序列:
3 4 5 6 7 8 9 10
我认为这个结果是不正确的,因为:
- 尽管在代码的第一行声明了'2',但没有打印出来。
- '10' 被打印出来,即使 10 等于它自己(违反条件
a < 10)。
即使我设置了“while”条件a <= 10,它也会打印出数字 3 到 11,这又是不正确的。
我认为应该是正确的代码如下:
a = 2
while a < 10:
print (a)
a = a + 1
导致:
2 3 4 5 6 7 8 9
这是我对代码的期望。我对代码进行了一些尝试,有趣的是,Python 允许一些奇怪的安排,这些安排可以在没有错误的情况下执行,但完全不正确!例如:
a = 2
while a < 30:
a = a + 5
print (a)
这导致只有数字“32”,这似乎是不正确的。
如果我将 print (a) 缩进 4 个空格,我会得到:
7 12 17 22 27 32
这似乎也不正确。你能解释一下为什么我会得到这些输出吗?
【问题讨论】:
-
代码逐行执行。打开 while 循环,你会很容易看到在检查下一个条件之前增量和打印已经完成
-
你真的不应该认为除了你以外的所有人都错了。
-
欢迎来到奇异的计算机编程世界:)
-
计算机程序完全按照您的指示去做。所以它所犯的任何错误完全是你自己的责任。
标签: python variables printing while-loop