如何解決Python語言沒有和其他程式語言類似的for語句造成的不方便?

時間 2021-06-09 17:30:40

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 ...