一直喜歡編程,最近決定潛心入坑。起初一直在研究要學什麼語言,想過c語言,學過VB(兩天。。。),後來據說了python,功能強大,而且適合小白入手。文筆不行,但仍是申請了博客號,以便記錄、發表本身的所想所悟,但願日後的日子能堅持如今的這份熱忱,達到本身想要達到的高度。加油!
html
————————————————————————————————————————————————————python
關於pythonlinux
Python是一種面向對象的解釋型、動態的高級計算機程序設計語言,有荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。android
Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL協議。Python語法簡潔清晰,特點之一是強制用空白符作語句縮進。c++
Python具備豐富和強大的庫。它常被暱稱爲膠水語言,可以將其餘語言製做的各類模塊(尤爲是c/c++)聯結在一塊兒。常見的一種應用情形是,使用Python快速生成程序的原型,若是有其餘特別要求的部分,能夠用其餘語言改寫。程序員
2018年發佈版本3.x,於3月,官方宣佈Python2.7將於2020年1月1日終止支持。用戶若是想要在這個日期以後繼續獲得與Python2.7有關的支持,則須要付費給商業供應商。正則表達式
簡單:Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣。它使你可以專一於解決問題而不是去搞明白語言自己。算法
易學:Python極其容易上手,由於Python有極其簡單的說明文檔。shell
速度快:Python 的底層是用 C 語言寫的,不少標準庫和第三方庫也都是用 C 寫的,運行速度很是快。
數據庫
免費、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。
高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
可移植性:因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基於linux開發的android平臺。
解釋性:一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。運行程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼運行 程序。在計算機內部,Python編譯器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。
面向對象:Python既支持面向過程的編程也支持面向對象的編程。在"面向過程"的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在"面向對象"的語言中,程序是由數據和功能組合而成的對象構建起來的。
可擴展性:若是須要一段關鍵代碼運行得更快或者但願某些算法不公開,能夠部分程序用C或C++編寫,而後在Python程序中使用它們。
可嵌入性:能夠把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
豐富的庫:Python標準庫確實很龐大。它能夠幫助處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。這被稱做Python的"功能齊全"理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。
規範的代碼:Python採用強制縮進的方式使得代碼具備較好可讀性。而Python語言寫的程序不須要編譯成二進制代碼。
單行語句和命令行輸出問題:不少時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,能夠較爲方便的在shell下完成簡單程序,不須要如Python同樣,必須將程序寫入一個.py文件。
獨特的語法:這也許不該該被稱爲侷限,可是它用縮進來區分語句關係的方式仍是給不少初學者帶來了困惑。即使是頗有經驗的Python程序員,也可能陷入陷阱當中。
運行速度慢:這裏是指與C和C++相比。
系統編程:提供API(Application Programming Interface應用程序編程接口),能方便進行系統維護和管理,Linux下標誌性語言之一,是不少系統管理員理想的編程工具 。
編譯型語言&解釋型語言
計算機是不能識別高級語言的,當咱們在運行高級語言的時候,須要一個翻譯機來把高級語言轉變爲計算機可以讀懂的機器語言,其中,有兩種實現方式:
一種是編譯,另外一種是解釋。
編譯型語言:在程序執行以前,有一個單獨的編譯過程,將程序翻譯成機器語言,之後執行這個程序的時候,就不用再翻譯了。
解釋型語言:在運行的時候將程序翻譯成機器語言,因此運行速度相對於編譯型語言要慢。
前者是一次把全部的代碼轉換成機器語言,而後寫成可執行文件。後者是再程序運行的前一刻,還只有源程序而沒有可執行程序;當程序每執行到源程序的某一條指令,則會有一個稱之爲解釋程序的外殼程序將源代碼轉換成二進制代碼以供執行,總而言之,就是不斷解釋、執行、解釋、執行......所以,解釋型程序離不開解釋程序的。
其實,二者各有優劣,前者因爲程序執行速度快,同等條件下對系統要求較高,所以像開發操做系統、大型應用程序、數據庫系統等,便採用編譯語言(c/c++、pascal/object、Pascal(Delphi)、VB等)。而一些網頁腳本、服務器腳本及輔助開發接口此類對速度要求不高、對不一樣系統平臺鍵的兼容性有必定要求的程序則採用解釋型語言(Java、JavaScript、VBScript、Perl、Python等)。
當下,因爲二者間優劣大體互補,而且隨着設計技術與硬件的不斷髮展,編譯型與解釋型兩種方式的界限正在不斷變得模糊。例如Java雖屬於解釋型語言,但在執行以前已經預先進行一次預編譯,生成的代碼是介於機器碼和Java源代碼之間的中介代碼,運行的時候則由JVM(Java的虛擬機平臺,可視爲解釋器)解釋執行。它既保留了源代碼的高抽象、可移植的特色,又已經完成了對源代碼的大部分預編譯工做,因此執行起來比「純解釋型」程序要快許多。
動態型語言&靜態型語言
動態型語言:在運行時才肯定數據類型的語言。變量使用以前不須要類型聲明,一般變量的類型是被賦值的那個值的類型。例如:Python、Ruby、Perl等。
靜態型語言:在編譯時變量的數據類型就被定義,多數靜態類型語言要求在使用變量以前必須聲明數據類型。例如:C++、Java、Delphi、C#等
(ps:部份內容摘抄、改寫於網絡,因爲涉水未深,按我的理解角度敲字,部份內容難免有錯,望諒之!)