Python 基本代码误解
几天前,我买了一本名为《儿童Python(傻瓜版)》的书。 第47页有一个简单代码块的示例:Python 基本代码误解,python,variables,printing,while-loop,Python,Variables,Printing,While Loop,几天前,我买了一本名为《儿童Python(傻瓜版)》的书。 第47页有一个简单代码块的示例: a = 2 while a < 10: a = a + 1 print (a) 我认为这个结果是不正确的,因为: 尽管在代码的第一行中声明了“2”,但不会打印出来 即使10等于自身(违反条件a不要假定Python是错误的,也许你应该考虑一下你误解Python是如何工作的可能性。 < P>这正是应该发生的。while或for循环的条件仅在循环顶部进行测试;在循环操作期间没有测试。
a = 2
while a < 10:
a = a + 1
print (a)
我认为这个结果是不正确的,因为:
- 尽管在代码的第一行中声明了“2”,但不会打印出来
- 即使10等于自身(违反条件
),也会打印出“10”a<10
即使我在第一个代码中设置了“while”条件
a,请注意print
语句前面的一行:在任何打印之前,它将a
添加1。当然,如果更改代码,结果可能会有所不同。因此,除非你的书声称应该生产的产品与实际生产的产品不同,否则这本书没有错
< >不要假定Python是错误的,也许你应该考虑一下你误解Python是如何工作的可能性。 < P>这正是应该发生的。while或for循环的条件仅在循环顶部进行测试;在循环操作期间没有测试。因此,您可以在循环体中随意更改循环控制变量(a),并且while子句在返回到循环顶部之前不会做出反应。与上一个示例等效的代码如下:
a = 2
while True:
if not a < 30:
break
a = a + 5
print (a)
a=2
尽管如此:
如果a<30:
打破
a=a+5
印刷品(a)
直到a收到一个违反while条件的值,循环才会退出。如果在更新a后打印,则可以保证a的最后一个值将违反该条件。我将逐步执行此示例,每次执行一条语句,以便您可以看到:
(1) a = 2
(2) while a < 10:
(3) a = a + 1
(4) print (a)
这只会导致数字“32”,这似乎是不正确的
计算机完全按照你告诉他们的去做,这是它们的优点和缺点。在修改后的代码中,a
增加5,但小于30。所以它从2增加→ 7.→ 12→ 17→ 22→ 27→ 32然后它退出该循环,因为32不小于30。然后它打印出一个
,即32。因为print语句没有缩进,所以它在循环之外,所以直到循环完成后才会执行。代码逐行执行。打开while循环,您将很容易看到增量和打印在检查下一个条件之前完成。您真的不应该认为除了您以外的所有人都错了。欢迎来到计算机编程的奇怪世界:)计算机程序完全按照您的指示执行。所以它犯的任何错误都是你自己的责任。
2 3 4 5 6 7 8 9
a = 2
while a < 30:
a = a + 5
print (a)
7 12 17 22 27 32
a = 2
while True:
if not a < 30:
break
a = a + 5
print (a)
(1) a = 2
(2) while a < 10:
(3) a = a + 1
(4) print (a)
a = 2
while a < 30:
a = a + 5
print (a)