簡述python程序的運(yùn)行原理 既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?C語言其實(shí)是一種比較“古老”而且“底層”的語言。其執(zhí)行效率,僅次于匯編語言。說其古老,是因?yàn)镃語言的出現(xiàn)很早。雖然Fortran
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語言其實(shí)是一種比較“古老”而且“底層”的語言。其執(zhí)行效率,僅次于匯編語言。
說其古老,是因?yàn)镃語言的出現(xiàn)很早。
雖然Fortran、Cobol語言出現(xiàn)比C語言更早,但是現(xiàn)代主流操作系統(tǒng)(Windows、Mac Os、linux、iOS、Android、Unix)全部脫胎于C語言。
說它底層,是因?yàn)镃語言設(shè)計(jì)之初就是為了同時(shí)編寫匯編語言。理論上可以全部用匯編寫。而匯編語言是執(zhí)行效率最高的語言。
所以Python用C語言寫一點(diǎn)也不奇怪。這和它能不能生成Exe一點(diǎn)關(guān)系都沒有。
Exe文件是Windows平臺(tái)的私有格式。最簡單的Exe是Com可執(zhí)行文件。Exe文件實(shí)際上是一個(gè)引導(dǎo)程序 一個(gè)解釋程序組成的。
Python語言生成的代碼,只需要配以引導(dǎo)程序和解釋程序,就可以作為Exe文件執(zhí)行。
所以,Python生成Exe文件一點(diǎn)難度都沒有。只是它愿不愿意提供的問題。
為什么Python效率這么低,還這么火?
在很多時(shí)候,性能不是瓶頸。大約80%的應(yīng)用,對(duì)性能要求不高。
為什么有人說Python的執(zhí)行速度很慢?
Python 比很多語言運(yùn)行起來都要慢。無論是使用 JIT 編譯器的 C#、Java,還是使用 AOT 編譯器的 C、C ,又或者是 JavaScript 這些解釋型語言,Python 都比它們運(yùn)行得慢。為什么 Python 比較慢?
主流的說法有這些:
- “是全局解釋器鎖
- Global Interpreter Lock
- (GIL)的原因”
- “是因?yàn)?Python 是解釋型語言而不是編譯型語言”
- “是因?yàn)?Python 是一種動(dòng)態(tài)類型的語言”
加米谷大數(shù)據(jù)培訓(xùn),6月大數(shù)據(jù)開發(fā)0基礎(chǔ)班、提高班,成都小班預(yù)報(bào)名中
相關(guān):為什么 Python 這么慢?
https://www.toutiao.com/i6630644941179585032/
近幾年熱火的Python語言,你認(rèn)為Python可以干什么?
1、web應(yīng)用開發(fā)
網(wǎng)站后端程序員:使用它單間網(wǎng)站,后臺(tái)服務(wù)比較容易維護(hù)。
類似平臺(tái)如:Gmail、Youtube、知乎、豆瓣
2、網(wǎng)絡(luò)爬蟲
爬蟲是屬于運(yùn)營的比較多的一個(gè)場景吧, 爬蟲獲取或處理大量信息:批量下載美劇、運(yùn)行投資策略、爬合適房源、從各大網(wǎng)站爬取商品折扣信息,比較獲取最優(yōu)選擇;對(duì)社交網(wǎng)絡(luò)上發(fā)言進(jìn)行收集分類,生成情緒地圖,分析語言習(xí)慣;爬取網(wǎng)易云音樂某一類歌曲的所有評(píng)論,生成詞云;按條件篩選獲得豆瓣的電影書籍信息并生成表格等。
3、AI 人工智能 與機(jī)器學(xué)習(xí)
現(xiàn)在的人工智能非常的火爆,各種培訓(xùn)班都在瘋狂打廣告招生.機(jī)器學(xué)習(xí),尤其是現(xiàn)在火爆的深度學(xué)習(xí),其工具框架大都提供了Python接口。Python在科學(xué)計(jì)算領(lǐng)域一直有著較好的聲譽(yù),其簡潔清晰的語法以及豐富的計(jì)算工具,深受此領(lǐng)域開發(fā)者喜愛。
4、數(shù)據(jù)分析
一般我們用爬蟲爬到了大量的數(shù)據(jù)之后,我們需要處理數(shù)據(jù)用來分析,不然爬蟲白爬了,我們最終的目的就是分析數(shù)據(jù),Python在這方面關(guān)于數(shù)據(jù)分析的庫也是非常的豐富的,各種圖形分析圖等 都可以做出來。也是非常的方便?!按髷?shù)據(jù)”分析中涉及到的分布式計(jì)算、數(shù)據(jù)可視化、數(shù)據(jù)庫操作等,Python中都有成熟的模塊可以選擇完成其功能。
5、自動(dòng)化運(yùn)維:自動(dòng)化處理大量的運(yùn)維任務(wù)
6、游戲開發(fā)者:一般是作為游戲腳本內(nèi)嵌在游戲中
7、自動(dòng)化測試:編寫為簡單的實(shí)現(xiàn)腳本,運(yùn)用在Selenium/lr中,實(shí)現(xiàn)自動(dòng)化。
8、網(wǎng)站開發(fā):借助django,flask框架自己搭建網(wǎng)站。