[問題] for loop 的 index 存取問題

看板Python作者 (番薯猴)時間6年前 (2018/06/26 14:56), 6年前編輯推噓3(3010)
留言13則, 6人參與, 6年前最新討論串1/3 (看更多)
剛發現一件我誤會很久的事情,假設我有段程式碼: for i in range(5): print(i) i += 1 我執行的預期結果是 0 2 4 結果卻是 0 1 2 3 4 https://imgur.com/V0glZVM.png
這跟 C++ 的理解真的差很多,請問我該怎麼讓它出現預期的結果? 因為這本來是寫在判斷某個條件發生時,要 iterator 跳過下次的執行用的。 寫 next(i) 無法達到目的,因為 i 是 int type。 請教各位大神。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.17.229 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1529996216.A.A47.html ※ 編輯: henry8168 (60.248.17.229), 06/26/2018 15:00:03

06/26 15:01, 6年前 , 1F
你寫i in range(5)那當然每次都是從range(5)拿一個出來阿
06/26 15:01, 1F
for i in range(5) 的邏輯應該是 for i in [0,1,2,3,4] 對吧。那這樣只能用 while loop 來寫嗎? ※ 編輯: henry8168 (60.248.17.229), 06/26/2018 15:02:55

06/26 15:03, 6年前 , 2F

06/26 15:03, 6年前 , 3F
看看range的文件
06/26 15:03, 3F
謝謝 確實跟 C++ 的 for 差很多

06/26 15:39, 6年前 , 4F
可以加上每次跳多少的參數吧
06/26 15:39, 4F
可是不是每次都要跳兩個,而是碰到特定條件才會跳。 如果只能用 while loop,那真的超醜的,初始、迴圈、i 加幾,就三行了ˊˋ ※ 編輯: henry8168 (60.248.17.229), 06/26/2018 15:56:37

06/26 16:58, 6年前 , 5F
設一個下次要跳過的bool旗標,每次for開頭看旗標,
06/26 16:58, 5F

06/26 16:58, 6年前 , 6F
https://goo.gl/yR3qM7 這個給你參考
06/26 16:58, 6F

06/26 16:58, 6年前 , 7F
如果要跳過,就先把旗標改為false,這次直接continue
06/26 16:58, 7F

06/26 16:59, 6年前 , 8F
看for 的部分
06/26 16:59, 8F

06/26 16:59, 6年前 , 9F
我是北七,沒看到已經有人回一樣意思的文了XDDD
06/26 16:59, 9F

06/27 01:44, 6年前 , 10F
for i in range(0,6,2):
06/27 01:44, 10F

06/27 01:44, 6年前 , 11F
print(i)
06/27 01:44, 11F

06/27 01:44, 6年前 , 12F
輸出結果就會是
06/27 01:44, 12F

07/02 11:20, 6年前 , 13F
初音
07/02 11:20, 13F
文章代碼(AID): #1RCUEuf7 (Python)
文章代碼(AID): #1RCUEuf7 (Python)