不止一次在微信、知乎有讀者朋友跑過來問:看完了基礎書,甚至看兩遍了,但自己寫的時候還是沒思路,我該怎么辦?
編程在我看來就是一門手藝活,絕不是簡單通過看書就能學會的,跟學游泳、學車、學鋼琴一個道理,沒別的,掌握了最基本的理論之后就是干,只有通過大量的練習、實戰才能掌握編程這門技能,之后再回過來頭來繼續深入理論
這個問題在知識星球也同樣被問,于是在那里我們設了每日一題的專題,每周會出三道題給大家,做完之后要求提交到 GitHub,我會統一對代碼進行 review。這些題一般都是出自于一些真實應用場景,通過這種方式來提高編程水平。
下面這道題我們在星球中的第三題,在你往下翻之前,不妨梳理下你的編程思路。
題目:
統計一個文件中每個單詞出現的次數,列出出現頻率最多的5個單詞。
前言:
這道題在實際應用場景中使用比較廣泛,記得哪里看到說李笑來就利用他的編程技能出版過一本背單詞的暢銷書,統計歷年來四六級、托福考試中出現的高頻詞匯,學生根據詞頻來記單詞,這種方式深受大家喜歡。這就是一個把編程技能用來解決實際問題的典型場景。
所以,哪怕你不是程序員,如果能掌握編程技能的話,也能給你的工作帶來極大的便利。
另外,在做數據分析時,那些詞云效果本質上都是基于詞頻統計來控制字體的大小,如果你能熟練運用Python中的知識來解決問題的話,那說明你真正入門Python了。
分析:
本題主要考察以下幾個方面的知識點:
1、如何正確讀寫文件
在 Python 中讀寫文件可以使用內置函數open(),而 open 函數在python2 和 python3 中有一定的區別,比如 Python 中可以指定讀寫文件的編碼格式,而 Python 則不可以,為了同時兼容2和3,我們通常會使用io模塊下面的 open 函數,大家可以查文檔搞清楚它們之間的區別,培養主動學習能力和查資料的習慣。
另外一點是讀寫文件完成之后是需要關閉文件描述符的,除了可以使用 try...except...finally的語法之后,我們還可以使用更優雅的 with … as 的語法來自動關閉文件。
2、如何對數據進行排序
sorted函數是一個使用頻率很高的內置函數,它的用法也很強大,因為它可以通過指定參數 key 來進行自定義排序,也就意味著你不僅可以對數字排序、對字母排序、還可以對列表、字典、自定義的對象進行排序,你只需要要告訴 sorted 函數的排序規則是什么,比如一個people對象,我既可以根據年齡排序也可以根據身高體重來排序,所以這個函數時非常靈活的,另外,對于列表對象有自帶的 sort 方法,如果能區分清楚 list.sort 與 sorted 之間區別那說明你已經能靈活運用了。
新聞熱點
疑難解答