www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享
[導(dǎo)讀]那么用戶下載到的就是該系統(tǒng)的所有源代碼,并且可以隨意修改。這也是解釋型語(yǔ)言本身的特性,想要運(yùn)行程序就必須有源代碼。

Python 是一種開源的解釋型腳本編程語(yǔ)言,它之所以非常流行,主要有三點(diǎn)原因:

Python 簡(jiǎn)單易用,學(xué)習(xí)成本低,看起來(lái)非常優(yōu)雅干凈;

Python 標(biāo)準(zhǔn)庫(kù)和第三庫(kù)眾多,功能強(qiáng)大,既可以開發(fā)小工具,也可以開發(fā)企業(yè)級(jí)應(yīng)用;

Python 站在了人工智能和大數(shù)據(jù)的風(fēng)口上,站在風(fēng)口上,豬都能飛起來(lái)。

舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明一下 Python 的簡(jiǎn)單:

比如要實(shí)現(xiàn)某個(gè)功能,C語(yǔ)言可能需要 100 行代碼,而 Python 可能只需要幾行代碼,因?yàn)镃語(yǔ)言什么都要得從頭開始,而 Python 已經(jīng)內(nèi)置了很多常見功能,我們只需要導(dǎo)入包,然后調(diào)用一個(gè)函數(shù)即可。

簡(jiǎn)單就是 Python 的巨大魅力之一,是它的殺手锏,用慣了 Python 再用C語(yǔ)言簡(jiǎn)直不能忍受。

本文就來(lái)匯總一下 Python 的特性,綜合對(duì)比一下它的優(yōu)缺點(diǎn)。

Python的優(yōu)點(diǎn)

1) 語(yǔ)法簡(jiǎn)單

和傳統(tǒng)的 C/C++、Java、C# 等語(yǔ)言相比,Python 對(duì)代碼格式的要求沒有那么嚴(yán)格,這種寬松使得用戶在編寫代碼時(shí)比較舒服,不用在細(xì)枝末節(jié)上花費(fèi)太多精力。我來(lái)舉兩個(gè)典型的例子:

Python 不要求在每個(gè)語(yǔ)句的最后寫上分號(hào),當(dāng)然寫也沒錯(cuò);

定義變量時(shí)不需要指明類型,甚至可以給同一個(gè)變量賦值不同類型的數(shù)據(jù)。

上述兩點(diǎn)也是 PHP、JavaScript、MATLAB 等常見腳本語(yǔ)言都具備的特性。

Python 是一種代表極簡(jiǎn)主義的編程語(yǔ)言,閱讀一段排版優(yōu)美的 Python 代碼,就像在閱讀一個(gè)英文段落,非常貼近人類語(yǔ)言,所以人們常說(shuō),Python 是一種具有偽代碼特點(diǎn)的編程語(yǔ)言。

偽代碼(Pseudo Code)是一種算法描述語(yǔ)言,它介于自然語(yǔ)言和編程語(yǔ)言之間。編寫偽代碼的目的是為了使被描述的算法可以更容易地以任何一種編程語(yǔ)言實(shí)現(xiàn),比如 C、C++、Java 等。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡(jiǎn)單、可讀性好,并且類似于自然語(yǔ)言。如果你學(xué)過數(shù)據(jù)結(jié)構(gòu),閱讀過嚴(yán)蔚敏的書籍,那你一定知道什么是偽代碼。

為什么說(shuō)簡(jiǎn)單就是殺手锏?一旦簡(jiǎn)單了,一件事情就會(huì)變得很純粹;我們?cè)陂_發(fā) Python 程序時(shí),可以專注于解決問題本身,而不用顧慮語(yǔ)法的細(xì)枝末節(jié)。在簡(jiǎn)單的環(huán)境中做一件純粹的事情,那簡(jiǎn)直是一種享受。

2) Python 是開源的

開源,也即開放源代碼,意思是所有用戶都可以看到源代碼。

Python 的開源體現(xiàn)在兩方面:

① 程序員使用 Python 編寫的代碼是開源的。

比如我們開發(fā)了一個(gè) BBS 系統(tǒng)(即網(wǎng)絡(luò)論壇),放在互聯(lián)網(wǎng)上讓用戶下載,那么用戶下載到的就是該系統(tǒng)的所有源代碼,并且可以隨意修改。這也是解釋型語(yǔ)言本身的特性,想要運(yùn)行程序就必須有源代碼。

② Python 解釋器和模塊是開源的。

官方將 Python 解釋器和模塊的代碼開源,是希望所有 Python 用戶都參與進(jìn)來(lái),一起改進(jìn) Python 的性能,彌補(bǔ) Python 的漏洞,代碼被研究的越多也就越健壯。

這個(gè)世界上總有那么一小撮人,他們或者不慕名利,或者為了達(dá)到某種目的,會(huì)不斷地加強(qiáng)和改善 Python。千萬(wàn)不要認(rèn)為所有人都是只圖眼前利益的,總有一些精英會(huì)放長(zhǎng)線釣大魚,總有一些極客會(huì)做一些炫酷的事情。

3) Python 是免費(fèi)的

開源并不等于免費(fèi),開源軟件和免費(fèi)軟件是兩個(gè)概念,只不過大多數(shù)的開源軟件也是免費(fèi)軟件;Python 就是這樣一種語(yǔ)言,它既開源又免費(fèi)。

如果你想?yún)^(qū)分開源和免費(fèi)的概念,請(qǐng)猛擊:開源就等于免費(fèi)嗎?用事實(shí)來(lái)說(shuō)話

用戶使用 Python 進(jìn)行開發(fā)或者發(fā)布自己的程序,不需要支付任何費(fèi)用,也不用擔(dān)心版權(quán)問題,即使作為商業(yè)用途,Python 也是免費(fèi)的。

4) Python 是高級(jí)語(yǔ)言

這里所說(shuō)的高級(jí),是指 Python 封裝較深,屏蔽了很多底層細(xì)節(jié),比如 Python 會(huì)自動(dòng)管理內(nèi)存(需要時(shí)自動(dòng)分配,不需要時(shí)自動(dòng)釋放)。

高級(jí)語(yǔ)言的優(yōu)點(diǎn)是使用方便,不用顧慮細(xì)枝末節(jié);缺點(diǎn)是容易讓人淺嘗輒止,知其然不知其所以然。

5) Python 是解釋型語(yǔ)言,能跨平臺(tái)

解釋型語(yǔ)言一般都是跨平臺(tái)的(可移植性好),Python 也不例外,我們已經(jīng)在《編譯型語(yǔ)言和解釋型語(yǔ)言的區(qū)別》中進(jìn)行了講解,這里不再贅述。

5) Python 是面向?qū)ο蟮木幊陶Z(yǔ)言

面向?qū)ο?Object Oriented)是大多數(shù)“現(xiàn)代”語(yǔ)言(即第三代編程語(yǔ)言)都具備的特性,否則在開發(fā)中大型程序時(shí)會(huì)捉襟見肘。

Python 雖然支持面向?qū)ο?,但它并不?qiáng)制你使用這種特性。Java 是典型的面向?qū)ο蟮木幊陶Z(yǔ)言,它強(qiáng)制必須以類和對(duì)象的形式來(lái)組織代碼。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向?qū)ο蟮奶匦浴?

除了面向?qū)ο蟮木幊陶Z(yǔ)言外,還有一種面向過程的編程語(yǔ)言,其中最典型的代表就是 C 語(yǔ)言。

6) Python 功能強(qiáng)大(模塊眾多)

Python 的模塊眾多,基本實(shí)現(xiàn)了所有的常見的功能,從簡(jiǎn)單的字符串處理,到復(fù)雜的 3D 圖形繪制,借助 Python 模塊都可以輕松完成。

Python 社區(qū)發(fā)展良好,除了 Python 官方提供的核心模塊,很多第三方機(jī)構(gòu)也會(huì)參與到模塊的開發(fā)中,這其中就有 Google(谷歌)、Facebook(臉書)、Microsoft(微軟) 等軟件巨頭。

在 Python 中,即使是一些小眾的功能,它往往也有對(duì)應(yīng)的開源模塊,甚至有可能不止一個(gè)。

7) Python 可擴(kuò)展性強(qiáng)

Python 的可擴(kuò)展性體現(xiàn)在它的模塊,Python 具有腳本語(yǔ)言中最豐富、強(qiáng)大的庫(kù)或模塊,這些庫(kù)或模塊覆蓋了文件操作、圖形界面編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)訪問等絕大部分應(yīng)用場(chǎng)景。

值得注意的是,這些類庫(kù)的底層代碼不一定都是 Python,還有很多 C/C++ 的身影。

比如當(dāng)需要一段關(guān)鍵代碼運(yùn)行速度更快時(shí),就可以使用 C/C++ 語(yǔ)言實(shí)現(xiàn),然后在 Python 中調(diào)用它們。Python 能把其它語(yǔ)言“粘”在一起,所以被稱為“膠水語(yǔ)言”。

python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的圣誕節(jié)期間,Guido開始寫能夠解釋Python語(yǔ)言語(yǔ)法的解釋器。Python這個(gè)名字,來(lái)自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個(gè)新的叫做Python的語(yǔ)言,能符合他的理想:創(chuàng)造一種C和shell之間,功能全面,易學(xué)易用,可拓展的語(yǔ)言。Python可以應(yīng)用于眾多領(lǐng)域,如:數(shù)據(jù)分析、組件集成、網(wǎng)絡(luò)服務(wù)、圖像處理、數(shù)值計(jì)算和科學(xué)計(jì)算等眾多領(lǐng)域。

Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。

Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語(yǔ)言經(jīng)常使用英文關(guān)鍵字,其他語(yǔ)言的一些標(biāo)點(diǎn)符號(hào),它具有比其他語(yǔ)言更有特色語(yǔ)法結(jié)構(gòu)。

1、python的優(yōu)點(diǎn):

優(yōu)雅”、“明確”、“簡(jiǎn)單”

Python程序看上去總是簡(jiǎn)單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來(lái)深入下去,可以編寫那些非常復(fù)雜的程序。

開發(fā)效率非常高

Python有非常強(qiáng)大的第三方庫(kù),基本上我們想通過計(jì)算機(jī)實(shí)現(xiàn)的任何功能,Python官方庫(kù)里都有相應(yīng)的模塊進(jìn)行支持,直接下載調(diào)用后,在基礎(chǔ)庫(kù)的基礎(chǔ)上再進(jìn)行開發(fā),大大降低開發(fā)周期,避免重復(fù)造輪子。

是一門高級(jí)語(yǔ)言

當(dāng)我們用Python語(yǔ)言編寫程序時(shí),無(wú)需考慮諸如如何管理程序使用的內(nèi)存一類的底層細(xì)節(jié)。

具備可移植性

由于它的開源本質(zhì),Python可以通過改動(dòng)被移植在不同平臺(tái)進(jìn)行工作。如果我們避免使用依賴于系統(tǒng)的特性,那么所寫Python程序無(wú)需修改就幾乎可以在市場(chǎng)上所有的系統(tǒng)平臺(tái)上運(yùn)行。

具備可擴(kuò)展性

如果需要使一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以把該部分程序代碼用C或C++編寫,然后在Python程序中使用它們。

具備可嵌入性

可以把Python嵌入C或C++程序,從而向程序用戶提供腳本功能。

跨平臺(tái)特性

像其他高級(jí)語(yǔ)言一樣,python語(yǔ)言也具備一處開發(fā),處處運(yùn)行的跨平臺(tái)特性。

2、python的缺點(diǎn)

速度較C語(yǔ)言慢

Python運(yùn)行速度相比C語(yǔ)言確實(shí)慢很多,跟JAVA相比也要慢一些,但其實(shí)這里所指的運(yùn)行速度慢在大多數(shù)情況下我們是無(wú)法直接感知到的,必須借助測(cè)試工具才能體現(xiàn)出來(lái),大多數(shù)情況下Python已經(jīng)完全可以滿足我們對(duì)程序速度的要求,但是如果要寫對(duì)速度要求極高的搜索引擎等,當(dāng)然還是建議用C去實(shí)現(xiàn)。

Tips:

比如,用C運(yùn)一個(gè)程序花了0.01s,用Python是0.1s,這樣,雖然C語(yǔ)言直接比Python快了10倍,但是我們是無(wú)法直接通過肉眼感知的,因?yàn)橐粋€(gè)正常人所能感知的時(shí)間最小單位也才是是0.15-0.4s左右。

代碼不能加密

因?yàn)镻YTHON是解釋性語(yǔ)言,所以它的源碼都是以明文形式存放的。

但是,如果項(xiàng)目要求源代碼必須是加密的,那么我們一開始就不應(yīng)該選擇用Python來(lái)去實(shí)現(xiàn),所以這個(gè)其實(shí)不能算作是Python的缺點(diǎn)。

線程不能利用多CPU問題

這是Python被人詬病最多的一個(gè)缺點(diǎn),GIL即全局解釋器鎖(Global Interpreter Lock),是計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言解釋器用于同步線程的工具,使得任何時(shí)刻僅有一個(gè)線程在執(zhí)行,Python的線程是操作系統(tǒng)的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統(tǒng)調(diào)度線程的執(zhí)行。一個(gè)python解釋器進(jìn)程內(nèi)有一條主線程,以及多條用戶程序的執(zhí)行線程。即使在多核CPU平臺(tái)上,由于GIL的存在,也會(huì)禁止多線程的并行執(zhí)行。

Python的定位是“優(yōu)雅”、“明確”、“簡(jiǎn)單”,所以Python程序看上去總是簡(jiǎn)單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來(lái)深入下去,可以勝任那些非常非常復(fù)雜的應(yīng)用程序開發(fā)。

python語(yǔ)言的優(yōu)點(diǎn)

⑴作為初學(xué)python的科班出身的小白,python非常簡(jiǎn)單,非常適合人類閱讀。閱讀一個(gè)良好的Python程序就感覺像是在讀英語(yǔ)一樣,盡管這個(gè)英語(yǔ)的要求非常嚴(yán)格!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語(yǔ)言本身。

⑵易學(xué)。python雖然是用c語(yǔ)言寫的,但是它擯棄了c中非常復(fù)雜的指針,簡(jiǎn)化了python的語(yǔ)法。

⑶Python是FLOSS(自由/開放源碼軟件)之一。簡(jiǎn)單地說(shuō),你可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件開發(fā)中。Python希望看到一個(gè)更加優(yōu)秀的人創(chuàng)造并經(jīng)常改進(jìn)。

⑷可移植性——由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過改動(dòng)使它能夠工作在不同平臺(tái)上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有Python程序無(wú)需修改就可以在下述任何平臺(tái)上面運(yùn)行。這些平臺(tái)包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基于linux開發(fā)的Android平臺(tái)!

⑸在計(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程序更加易于移植。

⑹Python既支持面向過程的函數(shù)編程也支持面向?qū)ο蟮某橄缶幊?。在面向過程的語(yǔ)言中,程序是由過程或僅僅是可重用代碼的函數(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ū)ο缶幊獭?

⑺ 可擴(kuò)展性和可嵌入性。如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

⑻豐富的庫(kù)。Python標(biāo)準(zhǔn)庫(kù)確實(shí)很龐大。python有可定義的第三方庫(kù)可以使用。它可以幫助你處理各種工作,包括正則表達(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ù)等等。

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉