给 python 初学者的四条忠告_给 python 初学者的四条忠告-Go语言中文社区
1. 不要糾結(jié)于開發(fā)工具的選擇,簡(jiǎn)單直接就是最好的
學(xué)習(xí)一種編程語言,首先要找一款合用的集成開發(fā)工具,似乎是自然而然的想法。為什么不呢?IDE可以自動(dòng)補(bǔ)齊,可以一鍵運(yùn)行,還可以斷點(diǎn)調(diào)試。使用IDE開發(fā)項(xiàng)目,就像駕駛一輛內(nèi)飾豪華的汽車,盡情享受駕駛的樂趣就好了,誰還去關(guān)心引擎蓋里面發(fā)動(dòng)機(jī)是如何工作的呢?我的年輕同事們也都是IDE的擁躉,最初使用pycharm,后來是時(shí)下大熱的vscode。
可是,我始終認(rèn)為,編程就像是駕駛,程序員就是司機(jī),而且是職業(yè)司機(jī),不是把駕駛當(dāng)成通勤技能的各色白領(lǐng)金領(lǐng)。既然是職業(yè)司機(jī),就不能滿足于打著領(lǐng)結(jié)、戴著白手套駕駛內(nèi)飾豪華、配置高端的汽車,而是必須具備打開引擎蓋子維修和保養(yǎng)的能力。
基于這個(gè)觀點(diǎn),我不建議初學(xué)者一開始就使用集成開發(fā)工具。對(duì)于python這樣一種解釋型的腳本語言,一款趁手的編輯器就足夠了。linux平臺(tái)上,vim或者emacs都足夠好(如果你通曉二者或者其中之一的話,請(qǐng)接受我的敬意);windows平臺(tái)上,我推薦使用notepad++。python初學(xué)者使用編輯器而非IDE的好處是:
專注于python本身,而不是被工具使用問題所困擾。君不見,知乎上關(guān)于pycharm和vscode的使用說明、常見問題的解決方案,多得幾乎超過了討論python本身
手工運(yùn)行代碼,可以更直觀、更深刻地了解腳本的解釋執(zhí)行過程
手工調(diào)試代碼,有助于代碼優(yōu)化,提高代碼把控能力
可以更好地使用pip安裝和管理第三方模塊
2. 習(xí)慣使用IDLE,這是學(xué)習(xí)python最好的方式
解釋型語言的優(yōu)勢(shì),就是可以寫一句執(zhí)行一句,想到哪兒寫到哪兒,不必像編譯型語言那樣得把程序全部寫完,編譯成功后才能運(yùn)行。我特別喜歡使用python的IDLE,甚至拿它當(dāng)計(jì)算器用。很多時(shí)候,我用IDLE驗(yàn)證代碼的寫法是否正確,查看模塊是否安裝成功以及版本號(hào)。IDLE支持tab鍵自動(dòng)補(bǔ)齊,我經(jīng)常用這個(gè)功能查看某個(gè)對(duì)象的方法和屬性。
>>> import numpy as np
>>> np.__version__
'1.17.0'
>>> np.hypot(3,4)
5.0
>>> def factorial(n): # 計(jì)算n的階乘
if n == 0: # 遞歸出口
return 1
return n*factorial(n-1) # 向遞歸出口方向靠近的自身調(diào)用
>>> factorial(5)
120
>>> _*2-100
140
小技巧
tab鍵自動(dòng)補(bǔ)齊
光標(biāo)移動(dòng)到執(zhí)行過的語句上敲擊回車,可以重復(fù)這個(gè)命令
下劃線(_)可以獲取最后一次執(zhí)行結(jié)果
3. 關(guān)于python,你不是懂得太少,而是知道得太多了
很多 python 初學(xué)者熱衷于觀看各種網(wǎng)絡(luò)教程、視頻教程,甚至還做了很多筆記。經(jīng)過了長(zhǎng)時(shí)間的學(xué)習(xí)之后,發(fā)現(xiàn)自己還是無法駕馭python。在我看來,出現(xiàn)這個(gè)問題的原因,不是因?yàn)樗麄兌锰?#xff0c;而是知道得太多了——準(zhǔn)確說,是在初級(jí)階段學(xué)習(xí)了高級(jí)階段的課程。
學(xué)習(xí)是一個(gè)循序漸進(jìn)的過程,而編程又一門實(shí)踐性很強(qiáng)的藝術(shù),因此學(xué)習(xí)編程需要不斷地重復(fù)“學(xué)習(xí)-實(shí)踐”。不要認(rèn)為跟著教程敲幾行代碼就叫實(shí)踐,那還是學(xué)習(xí)的過程。真正的實(shí)踐,就是寫一個(gè)讓自己滿意的代碼,實(shí)現(xiàn)一個(gè)獨(dú)立的功能。比如,初學(xué)者可以實(shí)現(xiàn)從一個(gè)文本文件讀出內(nèi)容,做些特別處理,再寫入另一個(gè)文件,或者寫一些算法函數(shù)等。有一定基礎(chǔ)之后,可以寫一個(gè)socketserver,或者寫個(gè)小游戲。下圖是我學(xué)習(xí)wxpython時(shí)給自己確定的實(shí)踐目標(biāo)。類似的,初學(xué)者應(yīng)該可以想到更多。
4. pip已經(jīng)近乎完美,但你未必完全了解
在python語言的發(fā)展過程中,安裝和管理第三方模塊的方法也歷經(jīng)變化。現(xiàn)在,我們終于等來了pip這個(gè)近乎完美的工具。pip除了安裝(install)和刪除(uninstall)這兩大功能,還可以指定模塊的安裝版本(無需預(yù)先刪除當(dāng)前已安裝版本),可以顯示所有已安裝的模塊,還可以通過upgrade自主升級(jí)。
# 安裝numpy模塊
PS D:XufiveGitwxgl> pip install numpy
# 如果同時(shí)安裝了py2和py3環(huán)境的話,需要這樣使用pip
PS D:XufiveGitwxgl> py -3 -m pip install numpy
# 刪除numpy模塊
PS D:XufiveGitwxgl> py -3 -m pip uninstall numpy
# 安裝numpy模塊,指定版本1.15.0
PS D:XufiveGitwxgl> py -3 -m pip install numpy=1.15.0
# 自主升級(jí)
PS D:XufiveGitwxgl> py -3 -m pip install --upgrade pip
# 顯示已安裝的模塊
PS D:XufiveGitwxgl> py -3 -m pip list
Package Version
----------------- -----------
-pencv-python 4.1.1
argh 0.26.2
attrs 19.1.0
Automat 0.7.0
basemap 1.2.0
beautifulsoup4 4.6.3
bleach 3.1.0
cefpython3 66.0
... ...
pip也用來安裝本地whl文件:
PS D:PyPackagepy3> py -3 -m pip install .basemap-1.2.0-cp37-cp37m-win_amd64.whl
如果你需要下載python模塊,這里是我見過的最全、最穩(wěn)定的python模塊倉(cāng)庫(kù),由加州大學(xué)歐文分校熒光動(dòng)力學(xué)實(shí)驗(yàn)室創(chuàng)建并維護(hù)。
如果你的很多個(gè)項(xiàng)目中,都會(huì)用到你自己的某些模塊,那么,把這些模塊做成安裝包,安裝到你的開發(fā)環(huán)境里,可能是最佳選擇。拙作《學(xué)習(xí)筆記:發(fā)布自己的python模塊安裝包》對(duì)此有詳細(xì)說明。
后記
近期有很多朋友通過私信咨詢有關(guān)Python學(xué)習(xí)問題。為便于交流,我在CSDN的app上創(chuàng)建了“Python作業(yè)輔導(dǎo)”大本營(yíng),面向Python初學(xué)者,為大家提供咨詢服務(wù)、輔導(dǎo)Python作業(yè)。歡迎有興趣的同學(xué)使用微信掃碼加入。
從博客到公眾號(hào),每一篇、每一題、每一句、每一行代碼,都堅(jiān)持原創(chuàng),絕不復(fù)制抄襲,這是我堅(jiān)守的原則。如果喜歡,請(qǐng)關(guān)注我的微信公眾號(hào)“Python作業(yè)輔導(dǎo)員”。
總結(jié)
以上是生活随笔為你收集整理的给 python 初学者的四条忠告_给 python 初学者的四条忠告-Go语言中文社区的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 省选+NOI 第四部分 图论
- 下一篇: python小游戏之二