首頁 後端開發 Python教學 python如何運行程式碼

python如何運行程式碼

Jun 29, 2019 pm 01:56 PM
python

python作為一種動態語言,其實是個解譯器軟體包。

python如何運行程式碼

當Python執行腳本時,在程式碼開始處理之前,Python也會執行一些步驟。 (推薦學習:Python影片教學

第一步是編譯成所謂的“字節碼”,如果Python進程擁有寫入權限,將把程式的字節碼保存為一個以.pyc為擴展名的文件, 如果Python無法在機器上寫入字節碼,程式仍然可以工作:字節碼將會在內存中生成並在程式結束時簡單地丟棄。一旦程式編譯成字節碼(或字節碼從已經存在的.pyc檔案中載入),之後的字節碼會送到通常稱為Python虛擬機器(Python VirtualMachine,簡稱為PVM)上來執行。

寫完的py文件,先翻譯成字節碼文件(隱藏後綴pyc),然後在用PVM(虛擬機器)把字節碼自動編譯,之後解釋到硬體。

如果已經形成過pyc文件,那麼你的py文件沒有改動,機器重新解釋的時候會跳過翻譯字節碼步驟,首先查看你的.py跟.pyc文件時間戳,如果沒有修改那麼直接執行pyc文件,否則會重新翻譯字節碼。

PVM不是一個獨立的程序,是Python的運作引擎,不需要安裝。事實上PVM就是迭代運行字節碼指令的一個大循環,一個接一個地完成操作。

因此Python具有更多的動態語言特性:在執行時,Python程式去建置並執行另一個Python程式是有可能的,而且往往是非常方便的。例如,eval和exec內建模組,能夠接受並執行包含Python程式碼的字串。使用以下程式碼可以查看add函數的字節碼:

import dis

def add(a,b):
    sum=a+b
    return sum

print(dis.dis(add))

更多Python相關技術文章,請造訪Python教學欄位進行學習!

以上是python如何運行程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python類可以有多個構造函數嗎? Python類可以有多個構造函數嗎? Jul 15, 2025 am 02:54 AM

Yes,aPythonclasscanhavemultipleconstructorsthroughalternativetechniques.1.Usedefaultargumentsinthe__init__methodtoallowflexibleinitializationwithvaryingnumbersofparameters.2.Defineclassmethodsasalternativeconstructorsforclearerandscalableobjectcreati

python for Loop範圍 python for Loop範圍 Jul 14, 2025 am 02:47 AM

在Python中,使用for循環配合range()函數是控制循環次數的常見方式。 1.當明確知道循環次數或需按索引訪問元素時使用;2.range(stop)從0到stop-1,range(start,stop)從start到stop-1,range(start,stop,step)加入步長;3.注意range不包含結束值,且在Python3返回可迭代對象而非列表;4.可通過list(range())轉換為列表,倒序時用負步長。

從Python中的Web API訪問數據 從Python中的Web API訪問數據 Jul 16, 2025 am 04:52 AM

使用Python調用WebAPI獲取數據的關鍵在於掌握基本流程和常用工具。 1.使用requests發起HTTP請求是最直接的方式,通過get方法獲取響應並用json()解析數據;2.對於需要認證的API,可通過headers添加token或key;3.需檢查響應狀態碼,推薦使用response.raise_for_status()自動處理異常;4.面對分頁接口,可通過循環依次請求不同頁面並加入延時避免頻率限制;5.處理返回的JSON數據時需根據結構提取信息,複雜數據可用pandas轉換為Data

python一行,如果還有 python一行,如果還有 Jul 15, 2025 am 01:38 AM

Python的onelineifelse是三元操作符,寫法為xifconditionelsey,用於簡化簡單的條件判斷。它可用於變量賦值,如status="adult"ifage>=18else"minor";也可用於函數中直接返回結果,如defget_status(age):return"adult"ifage>=18else"minor";雖然支持嵌套使用,如result="A"i

如何閱讀Python中的JSON文件? 如何閱讀Python中的JSON文件? Jul 14, 2025 am 02:42 AM

讀取JSON文件在Python中可通過json模塊實現,具體步驟為:使用open()函數打開文件,用json.load()加載內容,數據會以字典或列表形式返回;若處理JSON字符串,則應使用json.loads()。常見問題包括文件路徑錯誤、JSON格式不正確、編碼問題及數據類型轉換差異,需注意路徑準確性、格式合法性、編碼設置以及布爾值與null的映射。

python for循環逐行讀取文件 python for循環逐行讀取文件 Jul 14, 2025 am 02:47 AM

使用for循環逐行讀取文件是一種高效處理大文件的方法。 1.基本用法是通過withopen()打開文件並自動管理關閉,結合forlineinfile遍歷每一行,line.strip()可去除換行符和空格;2.若需記錄行號,可用enumerate(file,start=1)讓行號從1開始;3.處理非ASCII文件時應指定encoding參數如utf-8,以避免編碼錯誤。這些方法簡潔實用,適用於大多數文本處理場景。

python對案例不敏感的字符串比較如果 python對案例不敏感的字符串比較如果 Jul 14, 2025 am 02:53 AM

在Python中做不區分大小寫的字符串比較,最直接的方法是使用.lower()或.upper()統一格式後再比較。例如:str1.lower()==str2.lower()可判斷是否相等;其次,對於多語言文本,建議使用更徹底的casefold()方法,如"straß".casefold()會轉換為"strasse",而.lower()則可能保留特定字符;此外,應避免直接使用==比較,除非確認大小寫一致,否則容易導致邏輯錯誤;最後,在處理用戶輸入、數據庫或配

如何在Python中使用地圖功能 如何在Python中使用地圖功能 Jul 15, 2025 am 02:52 AM

Python的map()函數通過將指定函數依次作用於可迭代對象的每個元素,實現高效數據轉換。 1.它的基本用法是map(function,iterable),返回一個“懶加載”的map對象,常通過list()轉換為列表查看結果;2.常配合lambda使用,適用於簡單邏輯,如將字符串轉大寫;3.可傳入多個可迭代對象,前提是函數參數數量匹配,例如計算價格與折扣的折後價;4.使用技巧包括結合內置函數快速類型轉換、處理None情況類似zip(),以及避免過度嵌套影響可讀性。掌握map()能使代碼更簡潔專業

See all articles