溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python的優(yōu)缺點有哪些

發(fā)布時間:2021-11-25 13:38:27 來源:億速云 閱讀:455 作者:iii 欄目:大數(shù)據(jù)

本篇內容介紹了“python的優(yōu)缺點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. Python的出生

1989年  Guido van Rossum開始編寫Python語言編輯器(龜叔為了打發(fā)無聊的圣誕節(jié))

1991年  第一個Python編譯器誕生(正式誕生)

1994年  Python1.0  增加內置函數(shù)

2004年  Python204  web框架、Django

2008年  Python2.6 Python3.0(同一年出2個版本)

Python2 :源碼不標準、混亂、重復代碼太多吧

Python3 :標準、統(tǒng)一、去重

2. Python優(yōu)缺點

Python語言特點:優(yōu)美、簡單、清晰。



編譯型解釋型
一次性將所有程序編譯成二進制文件進制文件 當程序執(zhí)行時,一行一行的解釋
開發(fā)效率低,不能跨平臺開發(fā)效率高,可以跨平臺
運行速度快運行速度慢
C,C++等等python ,php等等

優(yōu)點

簡單————Python是一種代表簡單主義思想的語言。Python的這種偽代碼本質是它最大的優(yōu)點之一。它使你能夠專注于解決問題而不是去搞明白語言本身。

易學————就如同你即將看到的一樣,Python極其容易上手,Python有極其簡單的語法。

免費、開源————Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中?!  ?/p>

高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節(jié)。

可移植性————由于它的開源本質,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。

解釋型————一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。

這個過程通過編譯器和不同的標記、選項完成。當你運行你的程序的時候,連接/轉載器軟件把你的程序從硬盤復制到內存中并且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行程序。

在計算機內部,Python解釋器把源代碼轉換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行。事實上,由于你不再需要擔心如何編譯程序,如何確保連接轉載正確的庫等等,所有這一切使得使用Python更加簡單。由于你只需要把你的Python程序拷貝到另外一臺計算機上,它就可以工作了,這也使得你的Python程序更加易于移植。

面向對象————Python既支持面向過程的編程也支持面向對象的編程。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構建起來的。在“面向對象”的語言中,程序是由數(shù)據(jù)和功能組合而成的對象構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現(xiàn)面向對象編程

可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。

豐富的庫————Python標準庫確實很龐大。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理念。除了標準庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。

規(guī)范的代碼————Python采用強制縮進的方式使得代碼具有極佳的可讀性。

缺點

運行速度,有速度要求的話,最好用C++改寫關鍵部分。

代碼不能加密。

國內市場較小(國內以python來做主要開發(fā)的,目前只有一些web2.0公司)。但時間推移,目前很多國內軟件公司,尤其是游戲公司,也開始規(guī)模使用。

中文資料匱乏(好的python中文資料屈指可數(shù)),托社區(qū)的福,有幾本優(yōu)秀的教材已經(jīng)被翻譯了,但入門級教材多,高級內容還是只能看英語版。

構架選擇太多(沒有像C#這樣的官方.net構架,也沒有像ruby由于歷史較短,構架開發(fā)的相對集中。Ruby on Rails 構架開發(fā)中小型web程序天下無敵)。不過這也從另一個側面說明,python比較優(yōu)秀,吸引的人才多,項目也多。

3.Python的應用

(1)系統(tǒng)編程

  提供API(ApplicationProgrammingInterface應用程序編程接口),能方便進行系統(tǒng)維護和管理,Linux下標志性語言之一,是很多系統(tǒng)管理員理想的編程工具。

(2)圖形處理

  有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。

(3)數(shù)學處理

  NumPy擴展提供大量與許多標準數(shù)學庫的接口。

(4)文本處理

  python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發(fā)。

(5)數(shù)據(jù)庫編程

  程序員可通過遵循PythonDB-API(數(shù)據(jù)庫應用程序編程接口)規(guī)范的模塊與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等數(shù)據(jù)庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環(huán)境。

(6)網(wǎng)絡編程

 ** 提供豐富的模塊支持sockets編程,能方便快速地開發(fā)分布式應用程序。很多大規(guī)模軟件開發(fā)計劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它。**

(7)Web編程

  應用的開發(fā)語言,支持最新的XML技術。

**(8)多媒體應用  **

  Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。

(9)pymo引擎

  PYMO全稱為pythonmemoriesoff,是一款運行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺開發(fā),并且適用于創(chuàng)建秋之回憶(memoriesoff)風格的AVG游戲,故命名為PYMO。

(10)黑客編程

  python有一個hack的庫,內置了你熟悉的或不熟悉的函數(shù),但是缺少成就感。

4. 應用場景

(1)Web應用開發(fā)

  Python經(jīng)常被用于Web開發(fā)。比如,通過mod_wsgi模塊,Apache可以運行用Python編寫的Web程序。Python定義了WSGI標準應用接口來協(xié)調Http服務器與基于Python的Web程序之間的通信。一些Web框架**,**如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開發(fā)和管理復雜的Web程序。

(2)操作系統(tǒng)管理、服務器運維的自動化腳本

  在很多操作系統(tǒng)里,Python是標準的系統(tǒng)組件。大多數(shù)Linux發(fā)行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在終端下直接運行Python。有一些Linux發(fā)行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。

Gentoo Linux使用Python來編寫它的Portage包管理系統(tǒng)。Python標準庫包含了多個調用操作系統(tǒng)功能的庫。通過pywin32這個第三方軟件 包,Python能夠訪問Windows的COM服務及其它Windows API。使用IronPython,Python程序能夠直接調用.Net Framework。

一般說來,Python編寫的系統(tǒng)管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優(yōu)于普通的shell腳本。

(3)科學計算

  NumPy,SciPy,Matplotlib可以讓Python程序員編寫科學計算程序。

(4)桌面軟件

  PyQt、PySide、wxPython、PyGTK是Python快速開發(fā)桌面應用程序的利器。

(5)服務器軟件(網(wǎng)絡軟件)

  Python對于各種網(wǎng)絡協(xié)議的支持很完善,因此經(jīng)常被用于編寫服務器軟件、網(wǎng)絡爬蟲。第三方庫Twisted支持異步網(wǎng)絡編程和多數(shù)標準的網(wǎng)絡協(xié)議(包含客戶端和服務器),并且提供了多種工具,被廣泛用于編寫高性能的服務器軟件。

(6)游戲

  很多游戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫游戲的邏輯、服務器。相較于Python,Lua的功能更簡單、體積更?。欢鳳ython則支持更多的特性和數(shù)據(jù)類型。

(7)構思實現(xiàn),產(chǎn)品早期原型和迭代

  YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。

** 5. 應用方向**

(1)常規(guī)軟件開發(fā)

  Python支持函數(shù)式編程和OOP面向對象編程,能夠承擔任何種類軟件的開發(fā)工作,因此常規(guī)的軟件開發(fā)、腳本編寫、網(wǎng)絡編程等都屬于標配能力。

(2)科學計算

  隨著NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程序庫的開發(fā),Python越來越適合于做科學計算、繪制高質量的2D和3D圖像。

和科學計算領域最流行的商業(yè)軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所采用的腳本語言的應用范圍更廣泛,有更多的程序庫的支持。雖然Matlab中的許多高級功能和toolbox目前還是無法替代的,不過在日常的科研開發(fā)之中仍然有很多的工作是可以用Python代勞的。

(3)自動化運維

  這幾乎是Python應用的自留地,作為運維工程師首選的編程語言,Python在自動化運維方面已經(jīng)深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平臺。

(4)云計算

  開源云計算解決方案OpenStack就是基于Python開發(fā)的,搞云計算的同學都懂的。

(5)WEB開發(fā)

  基于Python的Web開發(fā)框架不要太多,比如耳熟能詳?shù)腄jango,還有Tornado,F(xiàn)lask。其中的Python+Django架構,應用范圍非常廣,開發(fā)速度非??欤瑢W習門檻也很低,能夠幫助你快速的搭建起可用的WEB服務。

(6)網(wǎng)絡爬蟲

  也稱網(wǎng)絡蜘蛛,是大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心工具。沒有網(wǎng)絡爬蟲自動地、不分晝夜地、高智能地在互聯(lián)網(wǎng)上爬取免費的數(shù)據(jù),那些大數(shù)據(jù)相關的公司恐怕要少四分之三。能夠編寫網(wǎng)絡爬蟲的編程語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用非常廣泛。

(7)數(shù)據(jù)分析

  在大量數(shù)據(jù)的基礎上,結合科學計算、機器學習等技術,對數(shù)據(jù)進行清洗、去重、規(guī)格化和針對性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語言之一。

(8)人工智能

  Python在人工智能大范疇領域內的機器學習、神經(jīng)網(wǎng)絡、深度學習等方面都是主流的編程語言,得到廣泛的支持和應用。

6. 常識

Python的作者,Guido von Rossum,荷蘭人。

Python的發(fā)音與拼寫

Python的意思是蟒蛇,源于作者喜歡的一部電視劇 (C呢?)

Python的作者是Guido van Rossum(龜叔

Python是龜叔在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而用C編寫的一個編程語言

Python正式誕生于1991年

Python的解釋器如今有多個語言實現(xiàn),我們常用的是CPython(官方版本的C語言實現(xiàn)),其他還有Jython(可以運行在Java平臺)、IronPython(可以運行在.NET和Mono平臺)、PyPy(Python實現(xiàn)的,支持JIT即時編譯)

Python目前有兩個版本,Python2和Python3

Life is shot, you need Python. 人生苦短,我用Python。

“python的優(yōu)缺點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI