讓我們通過代碼,看看發生了什麼。
注意:如果你的代碼正在做一些你沒有指望它做的事情,這是一個很好的做法。
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