這篇文章主要為大家詳細介紹了 Python 入門必須知道的 11 個知識點,幫助更好地瞭解 python,感興趣的小夥伴們可以參考一下

Python 被譽為全世界高效的程式語言,同時也被稱作是 “膠水語言”,那它為何能如此受歡迎,下面我們就來説説 Python 入門學習的必備 11 個知識點,也就是它為何能夠如此受歡迎的原因.
Python 簡介
Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麪向物件的指令碼語言。
Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。
Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於 PHP 和 Perl 語言。
Python 是互動式語言: 這意味著,您可以在一個 Python 提示符,直接互動執行寫你的程式。
Python 是面向物件語言: 這意味著 Python 支援物件導向的風格或程式碼封裝在物件的程式設計技術。
Python 是初學者的語言:Python 對初級程式設計師而言,是一種偉大的語言,它支援廣泛的應用程式開發,從簡單的文書處理到 WWW 瀏覽器再到遊戲。
Python 發展歷史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和電腦科學研究所設計出來的。
Python 本身也是由諸多其他語言發展而來的, 這包括 ABC 、 Modula-3 、 C 、 C++、 Algol-68 、 SmallTalk 、 Unix shell 和其他的指令碼語言等等。
像 Perl 語言一樣,Python 原始碼同樣遵循 GPL(GNU General Public License) 協議。
現在 Python 是由一個核心開發團隊在維護,Guido van Rossum 仍然佔據著至關重要的作用,指導其進展。
Python 特點

1. 易於學習:Python 有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
2. 易於閲讀:Python 程式碼定義的更清晰。
3. 易於維護:Python 的成功在於它的原始碼是相當容易維護的。
4. 一個廣泛的標準庫:Python 的最大的優勢之一是豐富的庫,跨平台的,在 UNIX,Windows 和 Macintosh 相容很好。
5. 互動模式:互動模式的支援,您可以從終端輸入執行程式碼並獲得結果的語言,互動的測試和除錯程式碼片斷。
6. 可移植:基於其開放原始碼的特性,Python 已經被移植(也就是使其工作)到許多平台。
7. 可擴充套件:如果你需要一段執行很快的關鍵程式碼,或者是想要編寫一些不願開放的演算法,你可以使用 C 或 C++完成那部分程式,然後從你的 Python 程式中呼叫。
8. 資料庫:Python 提供所有主要的商業資料庫的介面。
9.GUI 程式設計:Python 支援 GUI 可以建立和移植到許多系統呼叫。
10. 可嵌入: 你可以將 Python 嵌入到 C/C++程式,讓你的程式的使用者獲得” 指令碼化” 的能力。
1 、 Python 適用於哪些應用場景?
這個沒有固定答案,很多人都説 Python 不適合開發 GUI 的程式,但 Python 自己的 IDE——IDEL 和第三方的 IDE——Eric 就是 Python 寫的。
目前看到的更多的人是拿來寫 Web,使用如 Django 、 web.py 框架,沒記錯 Flask 也是。
也有一個情況用的比較多,用 Python 當膠水,與各種語言結合,共同完成某站羣軟件功能,注意觀察也許你會發現在安裝一些站羣軟件的時候會有 Python 的身影。
我個人還拿 Python 模擬過埠轉發和 DNS 服務等,所以真的是要看真麼用,而不是能怎麼用。
另外大資料分析 Python 也是比較適合的,從載入到分析,再到儲存結果等,Python 有一整套的模組應對。
2 、 Python 能夠勝任大資料嗎?
Python 很適合做大資料相關的分析,內建的 C 編譯的模組能應對常見的操作,個別極端的演算法建議用 C 重寫相關模組。
Python 本身的特點更多的是高效率的開發和簡單的維護,速度交給 C 去吧,更多的問題其實出自寫程式碼的人沒有更好的使用,而不是效率不夠高。比如排序,本來 Python 有非常高效的內建 C 編譯的模組,卻非要自己寫演算法,這樣的結果不慢都是奇怪的。
另外還要看需求是 CPU 密集型,還是 IO 密集型,如果是 CPU 密集型建議這部分操作由 C 實現,IO 密集型的效率不會因為 Python 而有多少改變。
C 的效率是高,但框架搭起來也費勁,所以還是結合著來吧,也因此,Python 被稱為膠水語言。
3 、 Python 是否可以完全代替 Shell?
完全可以,Shell 的功能 Python 均可實現,而且程式碼量更少、結構更優、可閲讀性更好,而 Python 可實現的功能 Shell 卻不一定能,如運維中會用到的用於互聯網通訊的 Socket 模組、用於 WEB 的 Django 框架、用於效能採集的 psutil 模組等,而且 Shell 對操作系統的命令依賴性較強,Python 可在更大程度上規避。
在一個 Shell 的 IDE 是個很大的問題,雖然 Python 的原生 IDE 不怎麼樣,但第三方的 IDE 還是功能十分強大的,雖然不能和微軟的 Virtual Studio 相媲美,但也是能完全滿足 Python 的開發需求的。
再説下 Python 的效率問題,Python 支援多程序、多執行緒以及協程(比執行緒更小一級),程式併發度是在 Shell 之上的。 Python 的核心模組基本都是用 C 實現的,因此效率更高。如有必要也可能將需要用 Python 實現的 Python 模組用 C 重寫以提高效率,當然也可以直接用 C Python,一個直接完全用 C 實現的 Python 直譯器。
4 、 Python 是否可以訪問常見的資料庫?
可以,Python 可以訪問常見的各種資料庫,如 Oracle 、 MySQL 、 Vertica 、 SQLServer 等,載入相應的模組即可,模組列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5 、 Python 開發是程序導向、函式還是物件?
Python 雖然是解釋型語言,但從設計之初就已經是一門物件導向的語言,對於 Python 來説一切皆為物件。正因為如此,在 Python 中建立一個類和物件是很容易的,當然如果習慣程序導向或者函式的寫法也是可以的,Python 並不做硬性的限制。
Python 的物件導向特徵如下:
封裝
物件導向程式設計中的術語物件(Object)基本上可以看做資料(特性)以及由一系列可以存取、操作這些資料的方法所組成的集合。傳統意義上的 “程式= 資料結構+演算法” 被封裝” 掩蓋 “並簡化為 “程式=物件+訊息” 。物件是類的例項,類的抽象則需要經過封裝。封裝可以讓呼叫者不用關心物件是如何構建的而直接進行使用。
繼承
類繼承:
繼承給人的直接感覺是這是一種複用程式碼的行為。繼承可以理解為它是以普通的類為基礎建立專門的類物件,子類和它繼承的父類是 IS-A 的關係。
多重繼承:
不同於 C#,Python 是支援多重類繼承的(C#可繼承自多個 Interface,但最多繼承自一個類)。多重繼承機制有時很好用,但是它容易讓事情變得複雜。
多型
多型意味著可以對不同的物件使用同樣的操作,但它們可能會以多種形態呈現出結果。在 Python 中,任何不知道物件到底是什麼型別,但又需要物件做點什麼的時候,都會用到多型。方法是多型的,運算子也是多型的。
6 、如何快速掌握 Python?
閲讀官方文件即可滿足日常需求,官方文件有中文翻譯,更加方便學習。但這些都是基礎的語法和常見的模組,Python 學習重要的是模組,快速、高效的開發依賴的是模組的應用,站在前人的肩膀會省時省力的多。
但學習 Python 其實最重要的是學習模組,而非語法本身,Python 的語法十分簡單,只要大學學過 C 或者資料結構課程,甚至完全沒學過的人也是可以輕鬆掌握的。掌握了語法已經可以實現 Shell 的功能,但要想提高模組的學習必不可少,如運維人員經常用的有:
psutil:獲取效能資訊
socket:基本互聯網通訊
IPy:IP 地址相關處理
dnsptyhon:域名相關處理
difflib:檔案比較
pexpect:螢幕資訊獲取,常用於自動化
paramiko:SSH 客户端
XlsxWriter:Excel 相關處理
其他還有很多很多功能模組,每天也不斷的有新的模組、框架、元件產生,如用於與 Java 做橋接的 PythonJS,甚至 Python 還可以編寫 Map 和 Reduce 。
7 、 Python 是否有專用的 IDE 工具?
有,IDEL 用 Python 實現的 Python 的 IDE 工具,但説實話,功能真心不咋地。我個人常用的 IDE 如下:
PyCharm
PyCharm 是 JetBrains 開發的 Python IDE 。 PyCharm 用於一般 IDE 具備的功能,比如,除錯、語法高亮、 Project 管理、程式碼跳轉、智慧提示、自動完成、單元測試、版本控制……另外,PyCharm 還提供了一些很好的功能用於 Django 開發,同時支援 Google App Engine,更酷的是,PyCharm 支援 IronPython!
Wing IDE
Wingware 的 Python IDE 相容 Python 2.x 和 3.x,可以結合 Django,matplotlib,Zope, Plone,App Engine,PyQt,PySide,wxPython,PyGTK,Tkinter,mod_wsgi,pygame,Maya,MotionBuilder,NUKE,Blender 和其他 Python 框架使用。 Wing 支援測試驅動開發,整合了單元測試,nose 和 Django 框架的執行和除錯功能。 Wing IDE 啓動和執行的速度都非常快,支援 Windows,Linux,OS X 和 Python versi 。
NotePad++
簡單、方便,但僅適合臨時性的更改。
其他的還有:Eclipse withPyDev 、 Sublime Text 、 Komodo Edit 、 Pyer 、 The Eric Python IDE 、 Interactive Editor for Python
8 、運用 Python 實現系統自動化監控有哪些常用方法?
準確的説應該是有哪些模組,健康監控肯定要有 psutil 來監控效能,還會用到通訊的 Socket,登陸的 Paramiko 、 telnetlib,ftp 的 ftplib 。
原理基本就是採集資料——本地處理資料——傳輸資料,如果做的比較完善可以再做個呈現資料,也可以吧資料傳送給 Zabbix 等開源工具。
個人還用一個開源監控互聯網刺探的,超過指定次數就自動封殺。
9 、 Python 可執行在那些平台?跨平台性如何?
支援常見的主流平台,如 AIX 、 HPUX 、 Solaris 、 Linux 、 Windows 等,除 Windows 外常見的 Unix 、 Linux 平台均帶有原生的 Python,但版本一般較低。關於跨平台和他跨平台語言一樣,要注意有些個別模組是單一平台特有的,整體的跨平台性還是很好的,不必為適應多平台寫多套程式碼。
但這不是説一點限制都沒有:首先,同一個版本的中間檔案.py 和.pyc 以及.pyo 是跨平台的;其次,PC 與移動終端,如:手機、 Pad 不可跨平台(原因見下一條);最後,不能跨處理器構架,如:Intel 與 ARM,64 位與 32 位。
10 、如何利用 Python 提高開發效率?
因為 Python 很多底層的東西不用自己寫,模組資源豐富,運用得當開發效率當然會提升,而且各種框架也為快速開發提供了基礎。
11 、 Python 執行速度如何?
通常 Java 的速度比 Python 快些。 Python 呼叫 C 擴充套件除外(也可以直接用 CPython)。
對於 Python 速度太慢的批評,Python 語言作者 Guido van Rossum 説:
如果你開發的系統發現了效能瓶頸,通常最有效率的做法是找到出問題的程式碼塊,用速度較快的語言如 C 或 C++寫一些程式碼替換該功能或該模組,而不是用 C 或 C++重寫整個系統,因為對大部分程式碼而言,語言的速度是無關緊要的。
學習是一個人最大的修養,通過學習不僅可以提升自己的境界,還能豐富知識,為以後的就業打下基礎,學習 Python 更是一個發展自己的好機會,畢竟人工智慧時代已經到來,Python 作為人工智慧時代的主力軍是非常有前景的,夢想沒有腐朽,一路還有汗流。加油!