- Python應(yīng)用與實(shí)戰(zhàn)
- 王科飛等編著
- 704字
- 2023-06-19 16:38:29
1.1.3 Python語言的運(yùn)行方式
計(jì)算機(jī)只能識(shí)別機(jī)器碼,不能識(shí)別源代碼,因此在程序運(yùn)行前,需要把源代碼轉(zhuǎn)換成機(jī)器碼。按轉(zhuǎn)換過程可以把計(jì)算機(jī)語言分為解釋型語言和編譯型語言。
編譯型語言在程序運(yùn)行之前,通過編譯器將源代碼變成機(jī)器碼,如C語言。這種類型的語言運(yùn)行速度快,但是編譯過程需要花費(fèi)大量時(shí)間,開發(fā)效率較低,而且編譯后的機(jī)器碼不能跨平臺(tái)移植。
解釋型語言在程序運(yùn)行時(shí),通過解釋器對(duì)程序逐行翻譯,先翻譯為機(jī)器碼后再執(zhí)行,如JavaScript。相比于編譯型語言,解釋型語言開發(fā)效率更高,省去了編譯過程的時(shí)間,可以跨平臺(tái),但因?yàn)樵诔绦蜻\(yùn)行時(shí)需要先做翻譯,所以運(yùn)行速度較慢。
Python屬于解釋型語言,是為了提高運(yùn)行速度而使用的一種編譯的方法。編譯之后得到后綴為“.pyc”的文件,用于存儲(chǔ)字節(jié)碼(特定于Python語言的表現(xiàn)形式,不是機(jī)器碼)。在運(yùn)行期間使用編譯后的字節(jié)碼可以加快到機(jī)器碼翻譯過程,如圖1.2所示,Python源代碼在第一次運(yùn)行時(shí)編譯出字節(jié)碼,以后重復(fù)運(yùn)行時(shí)會(huì)直接使用字節(jié)碼,所以Python比一般的解釋型語言有更快的運(yùn)行速度。

圖1.2 Python語言的運(yùn)行方式
綜上所述,Python程序運(yùn)行前不需要編譯,運(yùn)行時(shí)通過Python解釋器逐行執(zhí)行,具體的運(yùn)行方式有如下3種。
1.交互解釋器模式(REPL)
在命令提示符(終端)界面中輸入“Python”,進(jìn)入交互解釋模式。在該模式中輸入Python程序后,只需按Enter鍵,即可得到運(yùn)行結(jié)果。
2.腳本模式
將Python程序?qū)懙胶缶Y為“.py”的腳本文件中,使用“python xx.py”,即可運(yùn)行文件中的程序,這種方式可以方便地重復(fù)運(yùn)行程序。
3.集成開發(fā)環(huán)境(IDE)
在集成開發(fā)環(huán)境中編寫Python程序,如PyCharm,其本質(zhì)和腳本模式相同,但無須手動(dòng)創(chuàng)建腳本文件,只需在圖形化界面中完成Python腳本的創(chuàng)建,也無須在命令行中輸入任何指令,在集成開發(fā)環(huán)境中即可“一鍵運(yùn)行”。
- 演進(jìn)式架構(gòu)(原書第2版)
- JavaScript從入門到精通(微視頻精編版)
- Visual C++程序設(shè)計(jì)學(xué)習(xí)筆記
- Mastering AWS Lambda
- Cross-platform Desktop Application Development:Electron,Node,NW.js,and React
- Extending Puppet(Second Edition)
- 開源項(xiàng)目成功之道
- Orchestrating Docker
- 青少年學(xué)Python(第2冊(cè))
- CryENGINE Game Programming with C++,C#,and Lua
- 計(jì)算機(jī)程序的構(gòu)造和解釋(JavaScript版)
- Learning Rust
- Daniel Arbuckle's Mastering Python
- Perl 6 Deep Dive
- Expert Angular