2015-12-09 58 views
0

我自學Python。我已經通過一些教程,並認爲我會寫一個小計劃,爲每個8夜的光明節的蠟燭計數。「<=」在Python中未給出預期的結果

days = 0 
candles = 1 

while days <= 8 : 
    days = days + 1 
    candles = candles + 1 
    print ("Day", days,":", candles, "Candles") 

但對於這個結果(Python的3.4)是:

Day 1 : 2 Candles 
Day 2 : 3 Candles 
Day 3 : 4 Candles 
Day 4 : 5 Candles 
Day 5 : 6 Candles 
Day 6 : 7 Candles 
Day 7 : 8 Candles 
Day 8 : 9 Candles 
Day 9 : 10 Candles 

爲什麼沒有把它停在第8天?

+1

它只在迭代開始時檢查條件;它沒有注意到'days == 9'直到'print'後面。 – user2357112

回答

0

您正在增加測試後變量days的值。當days是8時,您將其增加到9,然後您將其打印。

我會做這樣的事情:

days = 1 
candles = 2 

while days <= 8 : 
    print ("Day", days,":", candles, "Candles") 
    days = days + 1 
    candles = candles + 1 
1

因爲你days <= 8在循環開始的時候,那麼你在循環中添加一個給它。 while循環不停止第二個值的變化,他們完成執行塊,然後返回到條件並檢查它們是否應該繼續。

0

如果你在最後增加你的變量,你會得到你想要的。

days = 1 
candles = 2 

while days <= 8 : 

    print ("Day", days,":", candles, "Candles") 
    days = days + 1 
    candles = candles + 1