Python是一種面向對象、解釋型計算機程序設計語言。語法簡潔清晰,強制用空白符作爲語句縮進。 Python具有豐富和強大的庫,又被稱爲膠水語言。能把其他語言(主要C/C++)寫的模塊很輕鬆的結合在一起。
1.1 介紹
1.1.1 特點
Python是一種面向對象、解釋型計算機程序設計語言。語法簡潔清晰,強制用空白符作爲語句縮進。
Python具有豐富和強大的庫,又被稱爲膠水語言。能把其他語言(主要C/C++)寫的模塊很輕鬆的結合在一起。
1.1.2 應用領域
Web網站:有很多優秀的開源Web框架,比如Django(最流行)、Tornado(輕量級、異步)、Flask(微型)、Web.py(簡單)等。
數據採集:有好用的http庫,比如urllib2、requests等。還有高級的屏幕爬取及網頁採集框架scrapy。並對網頁解析也有很多庫,比如lxml、xpath、BeautifulSoup等。
大數據分析:常用模塊有Numpy、Pandas。並支持寫MapReduce、PySpark處理Spark RDD(彈性分佈式數據集)。
運維自動化:編寫腳本、Web平臺,自動化日常工作。
科學計算:在科學計算也應用越來越廣泛,常用的模塊有Numpy、SciPy。
等等...可見Python是一門通用語言!
1.1.3 爲什麼選擇Python?
運維的目的呢,主要還是學習Python用來實現運維自動化了。大多數人除了shell腳本外有其他語言基礎的應該佔少數。
我們以Python作爲第一門語言是很好的選擇。爲什麼呢?
1) 語法簡潔,易於學習。
2) 廣泛的標準庫,適合快速開發,不就追求極快處理速度。
3) 跨平臺,基本所有的所有的操作系統都能運行。
4) 運維領域Python最流行。
1.2 安裝Python
ps:推薦一下我建的python零基礎系統學習交流扣扣qun:前面是937,中間667,後面是509,羣裏有免費的視頻教程,開發工具、電子書籍分享。專業的老師答疑!學習python web、python爬蟲、數據分析、大數據,人工智能等技術有不懂的可以加入一起交流學習,一起進步!
1.3 解釋器
1.3.1 Python解釋器幾種實現版本
1) CPython
當我們裝完Python後,其默認解釋就是CPython,也是官方默認解釋器。CPython是C語言寫的,當執行代碼時會將代碼轉化成字節碼(ByteCode)。
2) IPython
基於CPython之上的一個交互式解釋器,相當於默認解釋器的一個增強版,最顯著的功能就是自動補全,挺好用的。
3) PyPy
PyPy本身是由Python編寫的,使用了JIT編譯器(即時編譯器)技術,當執行代碼時JIT編譯器將代碼翻譯成機器碼。性能相比CPython要好。JAVA也採用了JIT編譯器。
4) Jython
Jython是由JAVA編寫的一個解釋器,可以把JAVA模塊加載到Python的模塊中使用,也可以把Python代碼打包成JAR包,意味着允許用Python寫JAVA程序了。當執行代碼時會將代碼轉化成JAVA字節碼,然後使用JRE執行。
5) IronPython
在.NET平臺上工作的Python語言。
1.3.2 Python代碼執行過程
大致流程:源代碼編譯成字節碼(.pyc文件)--> Python虛擬機 --> 執行編譯好的字節碼 --> Python虛擬機將字節碼翻譯成對應的機器指令(機器碼)
運行Python程序時,先編譯成字節碼並保存到內存中,當程序運行結束後,Python解釋器將內存中字節碼對象寫到.pyc文件中。
第二次再運行此程序時,先回從硬盤中尋找.pyc文件,如果找到,則直接載入,否則就重複上面的過程。
這樣好處是,不重複編譯,提供執行效率。
1) 字節碼
字節碼是一種包含執行程序、由一序列op代碼/數據對組成的二進制文件。字節碼是一種中間碼,比機器碼更抽象。
2) 機器碼
機器碼是一種指令集,讓CPU可直接解讀的數據。也稱爲原生碼。
1.4 代碼風格
1.4.1 代碼風格有毛用?
個人覺得有以下幾個作用:
1) 團隊協作
在企業中,一個團隊開發一個項目很正常不過了,剛入職是不是會先讓你熟悉本公司的編碼規範文檔呢,作爲純開發來說,我相信大多數公司都會這麼做,其中目的是讓團隊中的每個成員,寫代碼時能夠統一,避免項目中出現幾個編碼風格版本,不利用後期維護和交接。
2) 有利於解決問題
草泥馬,又出問題了,代碼運行不起來了,怎麼辦?百度、谷歌無解...是時候求助大神了,來看看我的代碼吧!大神一看,琢磨了一會,你想多了,不是再想你的問題,而是在梳理你的代碼實現的功能和邏輯關係。結果發現,多了括號。擦,我怎麼就沒看到呢!~
3) 未雨綢繆
功能終於實現了,發佈到線上運行也挺正常,過了半年後,突然跑不起來了,趕緊排查問題,代碼看着看着自己就懵逼了,這還是自己寫的代碼嘛,長的這麼不像我,是親生的嘛!
小結:只要人人都獻出一點愛,世界將會變成美好的人間。
1.4.2 編寫代碼怎麼能更規範化?
1) 縮進
Python以空白符作爲語句縮進,意味着語句沒有結尾符,給往往因爲少寫個fi的人帶來了福利,在Python中最好以4個空格作爲縮進符。
2) 代碼註釋
據說優質的代碼,註釋說明要比代碼量多,詳細的代碼說明不管對自己後期維護還是開源,都是有必要的。就像一個流行的軟件,如果沒有豐富的使用文檔,你認爲會有多少耐心的人去花大把的時間研究它呢!
3) 空格使用
在操作符兩邊,以及逗號後面,加1個空格。但是在括號左右不加空格。
在函數、類、以及某些功能代碼塊,空出一行,來分隔它們。
4) 命名
模塊:自己寫的模塊,文件名全部小寫,長名字單詞以下劃線分隔。
類:大/小駝峯命名。我一般採用大駝峯命名,也就是每個單詞首字母大寫。類中私有屬性、私有方法,以雙下劃線作爲前綴。
函數:首單詞小寫,其餘首字母大寫。
變量:都小寫,單詞以下劃線分隔。
提醒:所有的命名必須能簡要說明此代碼意義。
5) 代碼換行
按照語法規則去換行,比如一個很長的表達式,可以在其中某個小表達式兩邊進行換行,而不是將小表達式拆分,這樣更容易閱讀。
1.5 交互式解釋器
直接執行Python命令就啓動默認的CPython解釋器:
1.6 運算操作符