[問題] for loop 的 index 存取問題
剛發現一件我誤會很久的事情,假設我有段程式碼:
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
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, 2F
→
06/26 15:03,
6年前
, 3F
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
06/26 16:58, 5F
推
06/26 16:58,
6年前
, 6F
06/26 16:58, 6F
→
06/26 16:58,
6年前
, 7F
06/26 16:58, 7F
→
06/26 16:59,
6年前
, 8F
06/26 16:59, 8F
→
06/26 16:59,
6年前
, 9F
06/26 16:59, 9F
→
06/27 01:44,
6年前
, 10F
06/27 01:44, 10F
→
06/27 01:44,
6年前
, 11F
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
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):