劉光然
摘要:python的重要性已經眾所周知,在初學python時,如何能夠快速入門,同時保持進一步的學習動力,這是擺在大部分初學者的面前的一個難點。一般的教材也好,參考書也好,為了追求系統、全面,在某種程度上知識點過多,初學者不知道用在何處,造成了學習的難度,打擊了初學者的信心。本文提出一種簡易的快速入門方法,簡單的學習python的基礎知識后,開始使用leetcode進行算法刷題,然后循序漸進進一步學習。
關鍵詞:Python;入門;leetcode
引言
最近看到幾則新聞:
1、Python將納入浙江省高考!從 2018 年起浙江省信息技術教材編程語言將會更換為 Python。
2、Python納入山東省的小學教材課程,小學生都開始接觸 Python 語言了。
3、Python 將加入全國計算機等級考試!教育部考試中心決定自2018年起,在計算機二級考試加入了"Python語言程序設計”科目。
4、現在國外國內很多家長已經給孩子報名學習Python編程課程了。在美國,就連嬰幼兒也有專門的編程童書。
5.全國大學生藍橋杯軟件大賽在2019年加入了python。
隨著人工智能和機器學習的發展,各行各業職位正在逐漸被智能機器取替,為了應對被取替的風險,越來越多人開始學習編程,最近一年,似乎要進入全民Python編程的時代了。那么怎么學習python,市面上的python書要么是兒童入門學習python,或者是正式版本的python學習書籍和教材。那怎么學習才能快速入門呢?本文提出了一種新的策略,就是學習基本的python基礎知識后,配合力扣網站進行python算法刷題。這種方式的最大好處是,可以在python的學習過程中結合算法題的具體應用,通過刷算法題來促進進一步學習python。
一、Python知識點學習
Python是一門高級的面向對象的動態語言,任何一本python書籍,都會介紹詳細介紹python的方方面面,這些語法和規則往往都是比較完全和全面,對于計算機專業的學生可能還好一些,對于外專業的學生就不那么友好了。雖然說金融會計等其它外專業也需要使用python做一些數據處理方面的工作,但是降低python入門的難度,減緩python入門學習的難度曲線,這是比較重要的。即使對于計算機的學生,如果入門輕松一些,讓更多人能夠進一步去領略學習的樂趣,也是好事一件。
簡單的說,python的知識點分為兩塊,一塊是編程語言的基本數據類型和流程結構,另外一塊就是面向對象和一些高級話題。本文提出的方法就是,python入門知識點只講第一塊,也就是python中簡單的數據類型、分支結構和循環結構、函數。為什么這樣也能算是合理呢,請看下節進一步對算法刷題進行講解。
二、力扣刷算法題
計算機專業,最重要的基礎課程,可能要算《數據結構和算法》。對于這一點估計沒有人有疑問。說到刷數據結構和算法題,那么就不能不提到大名鼎鼎的力扣網站。力扣網站的題型分為容易,中等和難三個等級,編程的語言可以選擇多種,常用的是c++,Java,pythhon等。對于容易的算法題,上一節講的基礎知識就可以刷題了。這里舉一個例子:
1、兩數之和:
給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target ?的那 兩個 整數,并返回它們的數組下標。你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素在答案里不能重復出現。你可以按任意順序返回答案。
示例 1):
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0]+ nums[1]== 9 ,返回 [0, 1]。
答案是:
class Solution:
def twoSum(self, nums, target):
dic = {}
for i, num in enumerate(nums):
if target - num in dic:
return [dic[target - num], i]
dic[num]= i
這里的知識點就是第一部分的最基礎的python知識點,不過唯一需要補充的知識點有兩個:
A)類(class)的概念;
B)力扣的答案是無法直接在python環境下運行的。假如要運行,必須增加輸入。如下所示:
nums = [2,7,11,15]
target = 9
x = Solution()
Result = X.twoSum(nums, target)
print(result)
補充了這兩個知識點后,那么就可以理解力扣上的算法題的答案了。這樣的話,就可以在python的入門過程中,直觀的看見python的代碼時如何解決一些小型的“實際”問題。
至于兩者之間的相互促進,在下一節進一步闡述。
三、知識點學習和刷算法題的結合
學習了python的基礎知識點后,開始刷一些力扣上簡單的算法題,可以了解python語言中基本數據類型和流程結構,可以解決什么具體的問題。如果剛剛學習,完全不會做算法題目,也沒有關系,力扣上面會有python的解法提供,直接參考別人的優秀代碼,同樣可以達到上述目的。這樣一來,書本上的知識點就不是空洞的,而是非常生動形象。這里的難點,可能就是要尋找對應的算法題,如果有人指導提供對應的算法題(和書本知識點比較匹配的),那么學習起來就事半功倍。
小結
本文對于python初學者,提出了一種快速入門的方法,在外專業學生的《python基礎程序設計》課堂上經過驗證,取得了不錯的效果,希望對于廣大的python初學者有一定的幫助。
參考文獻:
[1]https://leetcode-cn.com/
[2]黑馬程序員。Python快速編程入門.北京:人民郵電出版社,2021.
[3]胡松濤。 圖解LeetCode初級算法(Python版).北京:清華大學出版社,2020.