让我们通过代码,看看发生了什么。
注意:如果你的代码正在做一些你没有指望它做的事情,这是一个很好的做法。
count = 0
while count <= 5:
count += 1
print(count)
的count
从0开始
count = 0
while count <= 5: # count = 0. Is 0 <= 5? Yes. Run the code.
count += 1
print(count)
增加计数所以现在等于1.打印它。
while count <= 5: # count = 1. Is 1 <= 5? Yes. Run the code.
count += 1
print(count)
递增。打印。重复。
让我们继续讨论导致问题的有趣案例。
while count <= 5: # count = 5. Is 5 <= 5? Yes. Run the code.
count += 1
print(count)
在这种情况下,仍然count
满足不等式,所以代码运行。
会发生什么?
的count
,这是5,被递增,从而打印出6
现在,我希望你明白为什么这个问题的存在,让我们来看看选择和自身的优势,劣势,和输出。
让我们从您的代码开始。
count = 0
while count <= 5:
count += 1
print(count)
优点:不打印出0
缺点:打印出6
如果我们去掉了=
标志?
count = 0
while count < 5:
count += 1
print(count)
输出:
1
2
3
4
5
优点:你想要做什么
缺点:你必须要在0开始,而不是1
如果我们这样做,你什么建议将<
标志替换为!
标志?
count = 0
while count != 5:
count += 1
print(count)
输出:
1
2
3
4
5
优点:你想要做什么
缺点:脆弱。如果你改变了你的增量,使它增加了一个数字,比如3,那么终点将被意外跳过,并且代码将继续运行。更好地使用不平等
如果我们想让我们开始成为第一个显示的数字,该怎么办?那么,要做到这一点,我们必须在改变之前打印出当前的数字,这意味着我们必须翻转事件的顺序。
count = 1 # Change the first number so it's what we want displayed first.
while count <= 5:
print(count)
count += 1
输出:
1
2
3
4
5
优点:你想要做什么,并开始第一显示的号码,而不是在它下面。缺点:如果你想坚持while
循环,这是要走的路,但在这种情况下有一个更好的方法。
在这样的情况下,在那里你增加数字,然后执行与他们的操作,这是更符合逻辑,只是使用for
loop,其目的只是这样的一个实例。
for count in range(1,5):
print(count)
输出:
1
2
3
4
5
优点:你想要做什么,更易于阅读,容易写,不太可能导致基于位置的错误。
缺点:与while
循环不同,必须知道上边界。
换句话说,如果您要在增量之前打印,您将得到不同的结果。 –
我现在明白了。它仍然增加计数,即使计数是5,因为我用'<='这就是为什么6输出也是因为我先把count + = 1,所以当计数为5时,它增加了一个然后再次检查循环它转错误,所以它打破。 感谢所发生的事情的可视化! – Zion