首頁  >  文章  >  後端開發  >  11個Python入門的知識點

11個Python入門的知識點

小云云
小云云原創
2018-03-29 13:29:191421瀏覽

Python被譽為全世界高效的程式語言,同時也被稱為“膠水語言”,那它為何能如此受歡迎,下面我們就來說說Python入門學習的必備11個知識點,也就是它為何能夠如此受歡迎的原因,本文主要和大家分享11個Python入門的知識點,希望能幫助大家。

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,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作為人工智慧時代的主力軍是非常有前景的,夢想沒有腐朽,一路還有汗流。加油!

推薦書單:

你眼中的Python大牛應該都有這份書單

Python書單不將就

不可錯過的十本Python好書

相關推薦:

Python入門學習的流程分享

##Python入門:區塊鏈的詳細介紹(圖)

python入門教程之列表操作


##

以上是11個Python入門的知識點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn