標籤:

偽·從零開始學Python - 0.2 我與Python

我最初想把它放進教程系列中,不過後來覺得不太合適,就移出了。再後來,我覺得加上這個也算是我為什麼寫這個教程的原因吧,於是仍然作為第0章第2節加入了。

短暫的初體驗

我其實是在2012年1月才接觸Python的。在此之前,我更多接觸的是PHP和HTML,還有一提起來就覺得很羞恥的易語言,雖然我對他們也都是一竅不通——那時只知道用Discuz進行傻瓜式的建站,版本管理工具用的還是SVN。

當時的新浪雲是通過SVN進行版本控制的,圖中上傳的應該是Discuz的文件

那時,我看當時某個好友的個人博客的時候,看到他發了一些關於Python的基礎教程(雖然那些教程爛尾了,而且現在也找不到了——他換了博客地址,原先的博客地址成了賭博網站的天堂;那些文章也沒有遷移過來)。那時我就試著下載了Python,並試著學了輸出和輸入語句,以及一些簡單的運算語句。然而,當時也沒有學下去。

那時,大家貌似還在糾結Python 3的不向下兼容,尤其是輸出語句的不兼容。我寫代碼的時候還是遵循了新的標準,後來自然是用了最新版。

當時的Python IDLE

當時還接觸了easyGUI,不過我想現在應該沒多少人用它了吧。

不過此後,由於我需要寫窗口類應用,而一般的VC++我根本沒時間學(至今也是),相比於此,易語言明顯在寫小型的窗口類應用上更加方便,所以我還是轉向了易語言,於是Python就被無情地拋棄了(說實話它也可以寫窗口類應用的),此後在高中的時間內再也沒有想過它。

不過在那時,我已經知道了Python可以開發網站了。不過,當時的新浪雲在Python實例的文檔中把Python的效果搞得很醜,所以也對當時的我造成了一定的心理陰影。

蜻蜓點水般的重新使用

我記得我重新使用Python是在2017年的事情了。

雖說我大學之後很長一段時間都沒有學過Python,但是我還是從一些IT行業的資訊中得知了關於Python的進展。我也知道,有一種叫做樹莓派的板載電腦,可以通過Python控制GPIO、攝像頭等,進而控制外部電路元件,實現意想不到的效果。

2017年的時候,我被騙去當一個自媒體的「負責人」。我當時還為了各項指標的分析,在網上找關於QQ空間的爬蟲(因為QQ空間不提供相關的API)。最後找到了一個,效果還相當好。那個就是用Python寫的。不過,那個爬蟲爬取的信息並不全,而且用到的MongoDB和Redis我都不會。我當時因為考試就沒有研究下去。那也是時隔五年再次使用Python吧。

只是後來我才意識到這個「負責人」是一個騙局。我試圖挽回局面,但是被騙的越來越厲害,好心當成驢肝肺,甚至連驢肝肺都不如。

因比賽而學習

不過,在另一個領域,我還是可以大顯身手的。

因為我參加的團隊在2016年的全國大學生網路商務創新應用大賽上得了特等獎,所以班裡有人就找我組建團隊,參加2017年的全國大學生網路商務創新應用大賽。

我最初還是想和以前一樣,寫創業計劃書式的方案。不過我的一大特徵就是懶,就算是腦子裡有想法,也懶得寫出來。結果我發現,團隊的其他成員居然等著我想方案……

那個比賽有四個方向。我後來和老師談論這個問題的時候,老師建議我們做大數據組的項目,於是我就試著去做。但是,主辦方提供的軟體我始終不會用。而且,老師嚴重高估我們擁有的的時間,活動快結束了還告訴我們建議做這個。最後,我們就做了網路商務創新組的比賽。

老師希望我把去年的項目稍作修改,加上一些能夠體現大數據的表,再交上去。但是我並不同意——我想做一些新的東西。於是我就想到了之前的爬蟲。

當然,原先的爬蟲肯定不行。很巧,我找到了使用MySQL存儲數據的腳本。不過,爬取的數據不足,我費盡千辛萬苦才找到爬取更多數據的方法,並擴充了腳本,用它成功地完成了方案,並且拿到了特等獎。

那一段時間,我應該是瘋狂惡補Python的知識吧。與此同時,我驚嘆於Python的切片和迭代,但始終搞不懂生成器和迭代器。

當時看的主要是廖雪峰的教程,0.1節提到過

寫,然後知不會

比賽結束後,我希望做一些微信公眾號相關的事情。我查閱了微信的開發者平台的文檔,發現他們的案例就是用Python寫的,然而……他們用的是Python 2.7的代碼,web.py的框架。正好我當時買了一個月的騰訊雲主機,我就想試試。結果,我發現非常狗血的情況:web.py的作者就是早已經自殺的亞倫·斯沃茨——我高中的時候看過關於他的事迹;也許是因此,web.py沒有很好地適配Python 3。我又手忙腳亂地裝了Django,結果折騰了半天也不會用。於是我只好作罷。

微信公眾平台提供的示例

話說回來,在比賽後,我希望把之前的那個爬蟲寫成一套完整的解決方案。但是,這時的我,腦子裡一團亂麻。看到別人寫的程序,各個類和函數錯落有致,而自己的一塌糊塗,我實在無心寫下去。

不過我還是要寫。於是我只能硬著頭皮寫,結果半路上頻頻出現意外,進展也相當緩慢。

後來我才感覺到,自己其實對Python根本不算是會啊。零零散散的知識,拼湊不起來體系的。若要學好,必須推倒重來。也許,將來的我就要靠這個吃飯了。

於是我半夜發了這麼一條說說

這也是我寫「偽·從零開始學Python」這個系列的原因吧——督促自己學習,同時傳道授業解惑,讓自己與他人都受益。

只有當你能把一個理論講得連女僕都能聽懂,你才算真懂了。

——盧瑟福

我也希望自己能夠學下去,寫下去。

畢竟有些事情自己不做,以後會被別人做的;而有些事情自己不做,就再也沒有人做了。


推薦閱讀:

python3 csv/xls/json/pickle 等序列化反序列化代碼速查
全網最全的NotePad++配置(適用於Python程序設計)
用Python為直方圖繪製擬合曲線的兩種方法
python中return到底什麼意思?
Python數據採集Selenium、PantomJS淺談

TAG:Python |