您好,登錄后才能下訂單哦!
Python被譽為全世界高效的編程語言,同時也被稱作是“膠水語言”,那它為何能如此受歡迎,下面我們就來說說Python入門學(xué)習(xí)的必備知識點,也就是它為何能夠如此受歡迎的原因.
1、Python適用于哪些應(yīng)用場景?
這個沒有固定答案,很多人都說Python不適合開發(fā)GUI的程序,但Python自己的IDE——IDEL和第三方的IDE——Eric就是Python寫的。
目前看到的更多的人是拿來寫Web,使用如Django、web.py框架,沒記錯Flask也是。
也有一個情況用的比較多,用Python當(dāng)膠水,與各種語言結(jié)合,共同完成某軟件功能,注意觀察也許你會發(fā)現(xiàn)在安裝一些軟件的時候會有Python的身影。
我個人還拿Python模擬過端口轉(zhuǎn)發(fā)和DNS服務(wù)等,所以真的是要看真么用,而不是能怎么用。
另外大數(shù)據(jù)分析Python也是比較適合的,從載入到分析,再到保存結(jié)果等,Python有一整套的模塊應(yīng)對。
我還是要推薦下我自己創(chuàng)建的Python學(xué)習(xí)交流群627044331,這是Python學(xué)習(xí)交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享干貨,包括我整理的一份適合零基礎(chǔ)學(xué)習(xí)Python的資料和入門教程。
2、Python能夠勝任大數(shù)據(jù)嗎?
Python很適合做大數(shù)據(jù)相關(guān)的分析,內(nèi)置的C編譯的模塊能應(yīng)對常見的操作,個別極端的算法建議用C重寫相關(guān)模塊。
Python本身的特點更多的是高效率的開發(fā)和簡單的維護,速度交給C去吧,更多的問題其實出自寫代碼的人沒有更好的使用,而不是效率不夠高。比如排序,本來Python有非常高效的內(nèi)置C編譯的模塊,卻非要自己寫算法,這樣的結(jié)果不慢都是奇怪的。
另外還要看需求是CPU密集型,還是IO密集型,如果是CPU密集型建議這部分操作由C實現(xiàn),IO密集型的效率不會因為Python而有多少改變。
C的效率是高,但框架搭起來也費勁,所以還是結(jié)合著來吧,也因此,Python被稱為膠水語言。
3、Python是否可以完全代替Shell?
完全可以,Shell的功能Python均可實現(xiàn),而且代碼量更少、結(jié)構(gòu)更優(yōu)、可閱讀性更好,而Python可實現(xiàn)的功能Shell卻不一定能,如運維中會用到的用于網(wǎng)絡(luò)通信的Socket模塊、用于WEB的Django框架、用于性能采集的psutil模塊等,而且Shell對操作系統(tǒng)的命令依賴性較強,Python可在更大程度上規(guī)避。
在一個Shell的IDE是個很大的問題,雖然Python的原生IDE不怎么樣,但第三方的IDE還是功能十分強大的,雖然不能和微軟的Virtual Studio相媲美,但也是能完全滿足Python的開發(fā)需求的。
再說下Python的效率問題,Python支持多進程、多線程以及協(xié)程(比線程更小一級),程序并發(fā)度是在Shell之上的。Python的核心模塊基本都是用C實現(xiàn)的,因此效率更高。如有必要也可能將需要用Python實現(xiàn)的Python模塊用C重寫以提高效率,當(dāng)然也可以直接用C Python,一個直接完全用C實現(xiàn)的Python解釋器。
4、Python是否可以訪問常見的數(shù)據(jù)庫?
可以,Python可以訪問常見的各種數(shù)據(jù)庫,如Oracle、MySQL、Vertica、SQLServer等,加載相應(yīng)的模塊即可,模塊列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5、Python開發(fā)是面向過程、函數(shù)還是對象?
Python雖然是解釋型語言,但從設(shè)計之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,對于Python來說一切皆為對象。正因為如此,在Python中創(chuàng)建一個類和對象是很容易的,當(dāng)然如果習(xí)慣面向過程或者函數(shù)的寫法也是可以的,Python并不做硬性的限制。
Python的面向?qū)ο筇卣魅缦拢?/p>
封裝
面向?qū)ο蟪绦蛟O(shè)計中的術(shù)語對象(Object)基本上可以看做數(shù)據(jù)(特性)以及由一系列可以存取、操作這些數(shù)據(jù)的方法所組成的集合。傳統(tǒng)意義上的“程序= 數(shù)據(jù)結(jié)構(gòu)+算法”被封裝”掩蓋“并簡化為“程序=對象+消息”。對象是類的實例,類的抽象則需要經(jīng)過封裝。封裝可以讓調(diào)用者不用關(guān)心對象是如何構(gòu)建的而直接進行使用。
類繼承:
繼承給人的直接感覺是這是一種復(fù)用代碼的行為。繼承可以理解為它是以普通的類為基礎(chǔ)建立專門的類對象,子類和它繼承的父類是IS-A的關(guān)系。
多重繼承:
不同于C#,Python是支持多重類繼承的(C#可繼承自多個Interface,但最多繼承自一個類)。多重繼承機制有時很好用,但是它容易讓事情變得復(fù)雜。
多態(tài)
多態(tài)意味著可以對不同的對象使用同樣的操作,但它們可能會以多種形態(tài)呈現(xiàn)出結(jié)果。在Python中,任何不知道對象到底是什么類型,但又需要對象做點什么的時候,都會用到多態(tài)。方法是多態(tài)的,運算符也是多態(tài)的。
6、如何快速掌握Python?
閱讀官方文檔即可滿足日常需求,官方文檔有中文翻譯,更加方便學(xué)習(xí)。但這些都是基礎(chǔ)的語法和常見的模塊,Python學(xué)習(xí)重要的是模塊,快速、高效的開發(fā)依賴的是模塊的應(yīng)用,站在前人的肩膀會省時省力的多。
但學(xué)習(xí)Python其實最重要的是學(xué)習(xí)模塊,而非語法本身,Python的語法十分簡單,只要大學(xué)學(xué)過C或者數(shù)據(jù)結(jié)構(gòu)課程,甚至完全沒學(xué)過的人也是可以輕松掌握的。掌握了語法已經(jīng)可以實現(xiàn)Shell的功能,但要想提高模塊的學(xué)習(xí)必不可少,如運維人員經(jīng)常用的有:
psutil:獲取性能信息
socket:基本網(wǎng)絡(luò)通信
IPy:IP地址相關(guān)處理
dnsptyhon:域名相關(guān)處理
difflib:文件比較
pexpect:屏幕信息獲取,常用于自動化
paramiko:SSH客戶端
XlsxWriter:Excel相關(guān)處理
其他還有很多很多功能模塊,每天也不斷的有新的模塊、框架、組件產(chǎn)生,如用于與Java 做橋接的PythonJS,甚至Python還可以編寫Map和Reduce。
7、Python是否有專用的IDE工具?
有,IDEL用Python實現(xiàn)的Python的IDE工具,但說實話,功能真心不咋地。我個人常用的IDE如下:
PyCharm
PyCharm是JetBrains開發(fā)的Python IDE。PyCharm用于一般IDE具備的功能,比如,調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制……另外,PyCharm還提供了一些很好的功能用于Django開發(fā),同時支持Google App Engine,更酷的是,PyCharm支持IronPython!
Wing IDE
Wingware的Python IDE兼容Python 2.x和3.x,可以結(jié)合Django,matplotlib,Zope, Plone,App Engine,PyQt,PySide,wxPython,PyGTK,Tkinter,mod_wsgi,pygame,Maya,MotionBuilder,NUKE,Blender和其他Python框架使用。Wing支持測試驅(qū)動開發(fā),集成了單元測試,nose和Django框架的執(zhí)行和調(diào)試功能。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實現(xiàn)系統(tǒng)自動化監(jiān)控有哪些常用方法?
準(zhǔn)確的說應(yīng)該是有哪些模塊,健康監(jiān)控肯定要有psutil來監(jiān)控性能,還會用到通信的Socket,登陸的Paramiko、telnetlib,ftp的ftplib。
原理基本就是采集數(shù)據(jù)——本地處理數(shù)據(jù)——傳輸數(shù)據(jù),如果做的比較完善可以再做個呈現(xiàn)數(shù)據(jù),也可以吧數(shù)據(jù)發(fā)送給Zabbix等開源工具。
個人還用一個開源監(jiān)控網(wǎng)絡(luò)刺探的,超過指定次數(shù)就自動封殺。
9、Python可運行在那些平臺?跨平臺性如何?
支持常見的主流平臺,如AIX、HPUX、Solaris、Linux、Windows等,除Windows外常見的Unix、Linux平臺均帶有原生的Python,但版本一般較低。關(guān)于跨平臺和他跨平臺語言一樣,要注意有些個別模塊是單一平臺特有的,整體的跨平臺性還是很好的,不必為適應(yīng)多平臺寫多套代碼。
但這不是說一點限制都沒有:首先,同一個版本的中間文件.py和.pyc以及.pyo是跨平臺的;其次,PC與移動終端,如:手機、Pad不可跨平臺(原因見下一條);最后,不能跨處理器構(gòu)架,如:Intel與ARM,64位與32位。
10、如何利用Python提高開發(fā)效率?
因為Python很多底層的東西不用自己寫,模塊資源豐富,運用得當(dāng)開發(fā)效率當(dāng)然會提升,而且各種框架也為快速開發(fā)提供了基礎(chǔ)。
11、Python運行速度如何?
通常Java的速度比Python快些。Python調(diào)用C擴展除外(也可以直接用CPython)。
對于Python速度太慢的批評,Python語言作者Guido van Rossum說:
如果你開發(fā)的系統(tǒng)發(fā)現(xiàn)了性能瓶頸,通常最有效率的做法是找到出問題的代碼塊,用速度較快的語言如C或C++寫一些代碼替換該功能或該模塊,而不是用C或C++重寫整個系統(tǒng),因為對大部分代碼而言,語言的速度是無關(guān)緊要的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。