1樓:freeman
主要還是習慣問題。傳統C的for大部分都可以轉化為範圍遍歷處理,實在不行還可以用while替代。
只是for使用多,產生了習慣依賴,這需要一些時間改變。
傳統的C迴圈:
for (初始化語句; 條件判斷式; 遞增語句) 迴圈體while (條件) 迴圈體
python的for:
for i in 範圍: 迴圈體
2樓:PG Di
不得不說,for迴圈的抽象程度不高。很多函式式語言是沒有迴圈的,只有遞迴。
如果使用函式式語言,一般是不使用for迴圈的:多使用map、iter、bind等函式。
以F#為例,如果要遍歷乙個int list,並將每個元素 * 2,並列印出來,可以這樣寫:
[1 .. 10] // create an int list
|> List.map (fun x-> x * 2) // map each item, then * 2
|> List.iter (printfn "%A") // print each item of result list
這樣不挺好嗎?
3樓:Aetherus
這個問題很有意思。
當你在寫for (int i = 0; i < n; i 時,你有沒有用抽象層級稍微高一點點的思路想過自己要幹嘛?
我相信多數時候你會說「遍歷乙個陣列」。
既然是遍歷陣列,為什麼一定要用下標?用下標還要考慮下標越界,邊界條件等,容易出錯。Python遍歷陣列通常不用下標,你就不用想那麼多了。
如果你想遍歷的不是陣列,而是個鍊錶怎麼辦?也用下標?那效能就捉雞了。
不用下標用next指標?那寫法上和遍歷陣列就不一樣了。為什麼我們就不能把「遍歷」這件事抽象出來,讓不同的資料結構有一致的遍歷寫法呢?
在Python裡,不管你遍歷的是陣列還是tuple還是dict,寫法都一樣,多好?
沒有基本for迴圈算個啥?你能想象我們這種Erlang/Elixir程式設計師還在用連迴圈都沒有的語言程式設計嗎?而且還寫得賊爽!
不僅沒有基本for迴圈,也沒有while迴圈,還沒有for-in迴圈,總之就是沒有任何迴圈結構可以用。
這個python問題如何解決
盜藍 只返回第乙個最長的數字字串 import re string 983fh398fh29q83u9283f9299h3 int list re findall r d string int list 983 398 29 83 9283 9299 3 result max int list ke...
小白學習python遇到瓶頸如何解決?
如果以後不打算從事遊戲方向的,可以跳過pygame,直接去下一步 如果以後打算玩玩遊戲的,還是硬著頭皮往下看吧,或者換個同類的demo去看 我個人建議你,先把這個飛機大戰的小遊戲,乙個字乙個字的,自己碼一遍,不求馬上看懂。在碼字和除錯的過程中,會慢慢明白的 joy 關鍵還是要帶著問題,學以致用!這樣...
如何解決Python定義函式時傳參遇到的問題?
只增笑耳Jason 直觀點的做法可以這麼來。deftest html,a kwargs soup BeautifulSoup html,a kwargs 呼叫 d test html,a d 我算是明白題主想要什麼了,現在深夜,手機打字不方便,我明天白天幫你改改你的test resolvewang ...