看板 Python 關於我們 聯絡資訊
剛發現一件我誤會很久的事情,假設我有段程式碼: 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
djshen: 你寫i in range(5)那當然每次都是從range(5)拿一個出來阿 06/26 15:01
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
djshen: 看看range的文件 06/26 15:03
謝謝 確實跟 C++ 的 for 差很多
andy19960407: 可以加上每次跳多少的參數吧 06/26 15:39
可是不是每次都要跳兩個,而是碰到特定條件才會跳。 如果只能用 while loop,那真的超醜的,初始、迴圈、i 加幾,就三行了ˊˋ ※ 編輯: henry8168 (60.248.17.229), 06/26/2018 15:56:37
kobe8112: 設一個下次要跳過的bool旗標,每次for開頭看旗標, 06/26 16:58
neil987: https://goo.gl/yR3qM7 這個給你參考 06/26 16:58
kobe8112: 如果要跳過,就先把旗標改為false,這次直接continue 06/26 16:58
neil987: 看for 的部分 06/26 16:59
kobe8112: 我是北七,沒看到已經有人回一樣意思的文了XDDD 06/26 16:59
moyun: for i in range(0,6,2): 06/27 01:44
moyun: print(i) 06/27 01:44
moyun: 輸出結果就會是 06/27 01:44
tmdggyygan: 初音 07/02 11:20