python编程基础(一):编程思想
編程核心思想:以前我java老師曾告訴我們編程思想:初級選手應該從內而外、從小到大,先從實現一個簡單的小功能開始,一點一點往里加,最后讓功能變復雜(簡單->復雜:可以先假定最理想、最簡單的數據,在最理想數據的基礎上實現之后,再測試修改麻煩的數據模式);而高級選手喜歡從上而下,從難到易,他們傾向于先搭建一個整體的結構框架,再由外而內地一點點地填充起內部簡單語句。
-->?當一個函數或算法太復雜時,可以分塊完成。比如,統計詞頻可以分為輸入、統計、輸出;SimHash算法可能分為擴展、加減權重、收縮等步驟。
--> 編程的精神是開源和共享,網絡上有很多可以實現某個功能的代碼片段,可以粘貼復制重復利用,而不用自己從頭到尾苦心孤詣地一點點寫。
工程思維:
==>科研和工程的區別:
- 科研注重的是研究,講求新;而工程注重的是應用,講求用,方法不必最新,能滿足需求應用就行。
- 科研注重的是研究,關注研究的背景和意義;而工程注重的是方法能不能實現工程需求,方法能不能在實際環境中達到可用性。
目錄
?
1. 雙層循環思想
2. 迭代思想
3. 遞歸思想
1. 雙層循環思想
循環、迭代前提:一定要弄清楚循環條件和循環操作對象。
應用場景:重復反饋過程的活動,不過每一次重復都需要重新遍歷原數組。比如:最長回文字符串
- ?遍歷一個數組或序列并在這個數組上進行操作,可以使用雙層循環控制。比如:
- ?依次遞減需要檢測字符串的長度,直到子字符串為空,長度為0,這是一個典型的while循環呀
- ?跳出雙層循環。break只跳出單層循環,雙層循環需要兩個break和一個if trigger布爾邏輯判斷。
應用方法:循環條件為長度判斷時->外層while循環,內層for循環;循環條件為中心或索引判斷時->外層for循環,內層for循環
應用案例:最大回文字符串;
-->?雙層循環與迭代區別:雙層循環每一次重復都是對原數組進行操作;迭代是每一次重復的結果會作為下一次迭代的初始值,對更新后的數組進行操作。
# 最大回文字符串-枚舉法 def verifyreverse(st):current = len(st)trigger = Falsewhile current > 0:for i in range(len(st) - current + 1):tmp = st[i:i + current]# print(tmp)if tmp == tmp[::-1]:target = tmptrigger = Truebreakcurrent -= 1if trigger:breakreturn targetprint verify reverse("efbaabdi")2. 迭代思想
迭代(iteration):重復反饋過程的活動,每一次迭代的結果會作為下一次迭代的初始值。(A重復調用B)
應用場景:重復反饋過程的活動,不過每一次迭代的結果會作為下一次迭代的初始值,對更新后的數組進行操作。
應用方法:left_index = 0; right = len(string) - 1?
應用案例:二分法查找元素和元素索引
--> 迭代和遞歸區別:迭代是A重復調用B;遞歸是A重復調用A
3. 遞歸思想
遞歸(recursion):遞歸常被用來描述以自相似方法重復事物的過程,在數學和計算機科學中,指的是在函數定義中使用函數自身的方法。(A調用A)
?
總結
以上是生活随笔為你收集整理的python编程基础(一):编程思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python programming t
- 下一篇: python编程基础(四):编程习惯、代