Python——你应该知道这些
1. Python的出生
1989年 Guido van Rossum開(kāi)始編寫(xiě)Python語(yǔ)言編輯器(龜叔為了打發(fā)無(wú)聊的圣誕節(jié))
1991年 第一個(gè)Python編譯器誕生(正式誕生)
1994年 Python1.0 增加內(nèi)置函數(shù)
2004年 Python204 web框架、Django
2008年 Python2.6 Python3.0(同一年出2個(gè)版本)
Python2 :源碼不標(biāo)準(zhǔn)、混亂、重復(fù)代碼太多吧
Python3 :標(biāo)準(zhǔn)、統(tǒng)一、去重
2. Python優(yōu)缺點(diǎn)
Python語(yǔ)言特點(diǎn):優(yōu)美、簡(jiǎn)單、清晰。
| 編譯型 | 解釋型 |
| 一次性將所有程序編譯成二進(jìn)制文件 | 當(dāng)程序執(zhí)行時(shí),一行一行的解釋 |
| 開(kāi)發(fā)效率低,不能跨平臺(tái) | 開(kāi)發(fā)效率高,可以跨平臺(tái) |
| 運(yùn)行速度快 | 運(yùn)行速度慢 |
| C,C++等等 | python ,php等等 |
?
優(yōu)點(diǎn)
-
簡(jiǎn)單————Python是一種代表簡(jiǎn)單主義思想的語(yǔ)言。Python的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身。
-
易學(xué)————就如同你即將看到的一樣,Python極其容易上手,Python有極其簡(jiǎn)單的語(yǔ)法。
-
免費(fèi)、開(kāi)源————Python是FLOSS(自由/開(kāi)放源碼軟件)之一。簡(jiǎn)單地說(shuō),你可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中。
-
高層語(yǔ)言————當(dāng)你用Python語(yǔ)言編寫(xiě)程序的時(shí)候,你無(wú)需考慮諸如如何管理你的程序使用的內(nèi)存一類(lèi)的底層細(xì)節(jié)。
-
可移植性————由于它的開(kāi)源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過(guò)改動(dòng)使它能夠工作在不同平臺(tái)上)。
-
解釋型————一個(gè)用編譯性語(yǔ)言比如C或C++寫(xiě)的程序可以從源文件(即C或C++語(yǔ)言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語(yǔ)言(二進(jìn)制代碼,即0和1)。這個(gè)過(guò)程通過(guò)編譯器和不同的標(biāo)記、選項(xiàng)完成。當(dāng)你運(yùn)行你的程序的時(shí)候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤(pán)復(fù)制到內(nèi)存中并且運(yùn)行。而Python語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行程序。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語(yǔ)言并運(yùn)行。事實(shí)上,由于你不再需要擔(dān)心如何編譯程序,如何確保連接轉(zhuǎn)載正確的庫(kù)等等,所有這一切使得使用Python更加簡(jiǎn)單。由于你只需要把你的Python程序拷貝到另外一臺(tái)計(jì)算機(jī)上,它就可以工作了,這也使得你的Python程序更加易于移植。
-
面向?qū)ο蟆狿ython既支持面向過(guò)程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^(guò)程”的語(yǔ)言中,程序是由過(guò)程或僅僅是可重用代碼的函數(shù)構(gòu)建起來(lái)的。在“面向?qū)ο蟆钡恼Z(yǔ)言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來(lái)的。與其他主要的語(yǔ)言如C++和Java相比,Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>
-
可擴(kuò)展性————如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開(kāi),你可以把你的部分程序用C或C++編寫(xiě),然后在你的Python程序中使用它們。
-
豐富的庫(kù)————Python標(biāo)準(zhǔn)庫(kù)確實(shí)很龐大。它可以幫助你處理各種工作,包括正則表達(dá)式、文檔生成、單元測(cè)試、線程、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫(kù)以外,還有許多其他高質(zhì)量的庫(kù),如wxPython、Twisted和Python圖像庫(kù)等等。
-
規(guī)范的代碼————Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有極佳的可讀性。
缺點(diǎn)
- 運(yùn)行速度,有速度要求的話,最好用C++改寫(xiě)關(guān)鍵部分。
- 代碼不能加密。
- 國(guó)內(nèi)市場(chǎng)較小(國(guó)內(nèi)以python來(lái)做主要開(kāi)發(fā)的,目前只有一些web2.0公司)。但時(shí)間推移,目前很多國(guó)內(nèi)軟件公司,尤其是游戲公司,也開(kāi)始規(guī)模使用。
- 中文資料匱乏(好的python中文資料屈指可數(shù)),托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了,但入門(mén)級(jí)教材多,高級(jí)內(nèi)容還是只能看英語(yǔ)版。
- 構(gòu)架選擇太多(沒(méi)有像C#這樣的官方.net構(gòu)架,也沒(méi)有像ruby由于歷史較短,構(gòu)架開(kāi)發(fā)的相對(duì)集中。Ruby on Rails 構(gòu)架開(kāi)發(fā)中小型web程序天下無(wú)敵)。不過(guò)這也從另一個(gè)側(cè)面說(shuō)明,python比較優(yōu)秀,吸引的人才多,項(xiàng)目也多。
3.Python的應(yīng)用
(1)系統(tǒng)編程
提供API(ApplicationProgrammingInterface應(yīng)用程序編程接口),能方便進(jìn)行系統(tǒng)維護(hù)和管理,Linux下標(biāo)志性語(yǔ)言之一,是很多系統(tǒng)管理員理想的編程工具。
(2)圖形處理
有PIL、Tkinter等圖形庫(kù)支持,能方便進(jìn)行圖形處理。
(3)數(shù)學(xué)處理
NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)的接口。
(4)文本處理
python提供的re模塊能支持正則表達(dá)式,還提供SGML,XML分析模塊,許多程序員利用python進(jìn)行XML程序的開(kāi)發(fā)。
(5)數(shù)據(jù)庫(kù)編程
程序員可通過(guò)遵循PythonDB-API(數(shù)據(jù)庫(kù)應(yīng)用程序編程接口)規(guī)范的模塊與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等數(shù)據(jù)庫(kù)通信。python自帶有一個(gè)Gadfly模塊,提供了一個(gè)完整的SQL環(huán)境。
(6)網(wǎng)絡(luò)編程
提供豐富的模塊支持sockets編程,能方便快速地開(kāi)發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開(kāi)發(fā)計(jì)劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它。
(7)Web編程
應(yīng)用的開(kāi)發(fā)語(yǔ)言,支持最新的XML技術(shù)。
(8)多媒體應(yīng)用
Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”,能進(jìn)行二維和三維圖像處理。PyGame模塊可用于編寫(xiě)游戲軟件。
(9)pymo引擎
PYMO全稱為pythonmemoriesoff,是一款運(yùn)行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺(tái)開(kāi)發(fā),并且適用于創(chuàng)建秋之回憶(memoriesoff)風(fēng)格的AVG游戲,故命名為PYMO。
(10)黑客編程
python有一個(gè)hack的庫(kù),內(nèi)置了你熟悉的或不熟悉的函數(shù),但是缺少成就感。
4. 應(yīng)用場(chǎng)景
?
(1)Web應(yīng)用開(kāi)發(fā)
Python經(jīng)常被用于Web開(kāi)發(fā)。比如,通過(guò)mod_wsgi模塊,Apache可以運(yùn)行用Python編寫(xiě)的Web程序。Python定義了WSGI標(biāo)準(zhǔn)應(yīng)用接口來(lái)協(xié)調(diào)Http服務(wù)器與基于Python的Web程序之間的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開(kāi)發(fā)和管理復(fù)雜的Web程序。
(2)操作系統(tǒng)管理、服務(wù)器運(yùn)維的自動(dòng)化腳本
在很多操作系統(tǒng)里,Python是標(biāo)準(zhǔn)的系統(tǒng)組件。 大多數(shù)Linux發(fā)行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在終端下直接運(yùn)行Python。有一些Linux發(fā)行版的安裝器使用Python語(yǔ)言編寫(xiě),比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來(lái)編寫(xiě)它的Portage包管理系統(tǒng)。Python標(biāo)準(zhǔn)庫(kù)包含了多個(gè)調(diào)用操作系統(tǒng)功能的庫(kù)。通過(guò)pywin32這個(gè)第三方軟件 包,Python能夠訪問(wèn)Windows的COM服務(wù)及其它Windows API。使用IronPython,Python程序能夠直接調(diào)用.Net Framework。一般說(shuō)來(lái),Python編寫(xiě)的系統(tǒng)管理腳本在可讀性、性能、代碼重用度、擴(kuò)展性幾方面都優(yōu)于普通的shell腳本。
(3)科學(xué)計(jì)算
NumPy,SciPy,Matplotlib可以讓Python程序員編寫(xiě)科學(xué)計(jì)算程序。
(4)桌面軟件
PyQt、PySide、wxPython、PyGTK是Python快速開(kāi)發(fā)桌面應(yīng)用程序的利器。
(5)服務(wù)器軟件(網(wǎng)絡(luò)軟件)
Python對(duì)于各種網(wǎng)絡(luò)協(xié)議的支持很完善,因此經(jīng)常被用于編寫(xiě)服務(wù)器軟件、網(wǎng)絡(luò)爬蟲(chóng)。第三方庫(kù)Twisted支持異步網(wǎng)絡(luò)編程和多數(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議(包含客戶端和服務(wù)器),并且提供了多種工具,被廣泛用于編寫(xiě)高性能的服務(wù)器軟件。
(6)游戲
很多游戲使用C++編寫(xiě)圖形顯示等高性能模塊,而使用Python或者Lua編寫(xiě)游戲的邏輯、服務(wù)器。相較于Python,Lua的功能更簡(jiǎn)單、體積更小;而Python則支持更多的特性和數(shù)據(jù)類(lèi)型。
(7)構(gòu)思實(shí)現(xiàn),產(chǎn)品早期原型和迭代
YouTube、Google、Yahoo!、NASA都在內(nèi)部大量地使用Python。
?5. 應(yīng)用方向
(1)常規(guī)軟件開(kāi)發(fā)
Python支持函數(shù)式編程和OOP面向?qū)ο缶幊?#xff0c;能夠承擔(dān)任何種類(lèi)軟件的開(kāi)發(fā)工作,因此常規(guī)的軟件開(kāi)發(fā)、腳本編寫(xiě)、網(wǎng)絡(luò)編程等都屬于標(biāo)配能力。
(2)科學(xué)計(jì)算
隨著NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程序庫(kù)的開(kāi)發(fā),Python越來(lái)越適合于做科學(xué)計(jì)算、繪制高質(zhì)量的2D和3D圖像。和科學(xué)計(jì)算領(lǐng)域最流行的商業(yè)軟件Matlab相比,Python是一門(mén)通用的程序設(shè)計(jì)語(yǔ)言,比Matlab所采用的腳本語(yǔ)言的應(yīng)用范圍更廣泛,有更多的程序庫(kù)的支持。雖然Matlab中的許多高級(jí)功能和toolbox目前還是無(wú)法替代的,不過(guò)在日常的科研開(kāi)發(fā)之中仍然有很多的工作是可以用Python代勞的。
(3)自動(dòng)化運(yùn)維
這幾乎是Python應(yīng)用的自留地,作為運(yùn)維工程師首選的編程語(yǔ)言,Python在自動(dòng)化運(yùn)維方面已經(jīng)深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動(dòng)化平臺(tái)。
(4)云計(jì)算
開(kāi)源云計(jì)算解決方案OpenStack就是基于Python開(kāi)發(fā)的,搞云計(jì)算的同學(xué)都懂的。
(5)WEB開(kāi)發(fā)
基于Python的Web開(kāi)發(fā)框架不要太多,比如耳熟能詳?shù)腄jango,還有Tornado,Flask。其中的Python+Django架構(gòu),應(yīng)用范圍非常廣,開(kāi)發(fā)速度非常快,學(xué)習(xí)門(mén)檻也很低,能夠幫助你快速的搭建起可用的WEB服務(wù)。
(6)網(wǎng)絡(luò)爬蟲(chóng)
也稱網(wǎng)絡(luò)蜘蛛,是大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心工具。沒(méi)有網(wǎng)絡(luò)爬蟲(chóng)自動(dòng)地、不分晝夜地、高智能地在互聯(lián)網(wǎng)上爬取免費(fèi)的數(shù)據(jù),那些大數(shù)據(jù)相關(guān)的公司恐怕要少四分之三。能夠編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)的編程語(yǔ)言有不少,但Python絕對(duì)是其中的主流之一,其Scripy爬蟲(chóng)框架應(yīng)用非常廣泛。
(7)數(shù)據(jù)分析
在大量數(shù)據(jù)的基礎(chǔ)上,結(jié)合科學(xué)計(jì)算、機(jī)器學(xué)習(xí)等技術(shù),對(duì)數(shù)據(jù)進(jìn)行清洗、去重、規(guī)格化和針對(duì)性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語(yǔ)言之一。
(8)人工智能
Python在人工智能大范疇領(lǐng)域內(nèi)的機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面都是主流的編程語(yǔ)言,得到廣泛的支持和應(yīng)用。
6. 常識(shí)
關(guān)鍵點(diǎn)常識(shí)
Python的作者,Guido von Rossum,荷蘭人。
?
- Python的發(fā)音與拼寫(xiě)
- Python的意思是蟒蛇,源于作者喜歡的一部電視劇 (C呢?)
- Python的作者是Guido van Rossum(龜叔)
- Python是龜叔在1989年圣誕節(jié)期間,為了打發(fā)無(wú)聊的圣誕節(jié)而用C編寫(xiě)的一個(gè)編程語(yǔ)言
- Python正式誕生于1991年
- Python的解釋器如今有多個(gè)語(yǔ)言實(shí)現(xiàn),我們常用的是CPython(官方版本的C語(yǔ)言實(shí)現(xiàn)),其他還有Jython(可以運(yùn)行在Java平臺(tái))、IronPython(可以運(yùn)行在.NET和Mono平臺(tái))、PyPy(Python實(shí)現(xiàn)的,支持JIT即時(shí)編譯)
- Python目前有兩個(gè)版本,Python2和Python3
- Life is shot, you need Python. 人生苦短,我用Python。
借鑒:
https://blog.csdn.net/miaodalengshui/article/details/77451262
https://www.jianshu.com/p/1cc1382e5e04
https://www.cnblogs.com/kaid/p/9016673.html
轉(zhuǎn)載于:https://www.cnblogs.com/xc-718/p/xc718.html
總結(jié)
以上是生活随笔為你收集整理的Python——你应该知道这些的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大板瓷砖请问选什么牌子好?
- 下一篇: Python中安装bs4后,pychar