argv python 提示输入_Python解释器
一、Python解釋器
我們編寫的Python代碼都要放在Python解釋器上運行,解釋器是代碼與計算機硬件之間的軟件邏輯層。
當我們在操作系統(tǒng)上安裝好Python之后,它就包含了保證Python運行的最小化組件:解釋器 和 標準庫。根據(jù)選用的Python版本的不同,解釋器本身可以用C語言實現(xiàn)(Python的官方實現(xiàn)版本)、Java語言實現(xiàn)或者其他的形式。無論使用采用什么版本,編寫好的Python程序代碼必須放在解釋器中運行。
1、Python代碼的執(zhí)行過程
將我們編寫好的Python代碼放到解釋器中運行,此過程主要分為兩步,第一步是將源碼編譯成“字節(jié)碼”,第二步是將編譯好的字節(jié)碼轉發(fā)到Python“虛擬機”中運行。當然對于程序員來說,這兩步都是隱藏的。
(1)字節(jié)碼編譯
當我們運行Python代碼時,Python解釋器內部會先通過詞法分析器將文件中的每一條代碼語句分解為單一步驟,然后編譯成字節(jié)碼的形式。編譯只是一個簡單的翻譯步驟,而且字節(jié)碼是屬于源代碼層次范圍內的底層代碼,是與平臺無關的,所以編譯好的字節(jié)碼是可以跨平臺運行的。這些字節(jié)碼可以提高執(zhí)行速度,比起原始的源代碼語句,字節(jié)碼的運行速度要快很多。
如果Python進程在機器上擁有寫入權限,那么它將把編譯好的字節(jié)碼保存為一個以 .pyc 為擴展名的文件。Python這樣做是作為一種啟動速度的優(yōu)化,下一次運行程序的時候,如果你在上次保存字節(jié)碼之后沒有修改過源代碼,Python將會直接加載 .pyc文件,并跳過編譯這個步驟。如果你修改了源代碼,下次運行程序時,字節(jié)碼文件將自動重新創(chuàng)建。
(2)Python虛擬機(PVM)
當源文件編譯成字節(jié)碼,字節(jié)碼就會發(fā)送到Python虛擬機(PVM)上來執(zhí)行。事實上,PVM就是迭代運行字節(jié)碼指令的一個大循環(huán),一個接一個的完成操作。從技術上講,這是Python解釋器的最后一步。
相關的性能問題
和C/C++這類完全編譯語言相比,Python的工作中沒有 “build” 和 “make” 操作,也就是沒有將源碼編譯成可以直接在機器上運行的二進制代碼的過程。而且Python解釋器中間形成的字節(jié)碼并不是CPU可以直接運行的二進制代碼,PVM仍然需要解釋字節(jié)碼成為二進制碼,再交由CPU運行。所以Python代碼無法運行的像C/C++一樣快。
相關的開發(fā)意義
在程序開始執(zhí)行之前不需要預編譯和連接,只需要簡單的輸入并運行代碼即可,這使得開發(fā)周期大大縮短。這同樣使得Python具有更多的動態(tài)語言特性:在運行時,Python程序可以去構建并執(zhí)行另一個Python程序,而且往往非常的方便。
2、Python 解釋器的使用方法
有三種不同的辦法來啟動Python解釋器。最簡單的方式就是在命令行中啟動Python解釋器的交互模式,每次輸入一行Python 代碼來執(zhí)行。另外一種方法是使用Python解釋器運行Python 的代碼文件。最后一種辦法就是使用Python的集成開發(fā)環(huán)境(IDE)運行Python,集成開發(fā)環(huán)境通常整合了其他的工具,例如集成的調試器、文本編輯器、版本控制工具等。
(1)啟動 Python 解釋器的交互模式
交互模式根據(jù)用戶的輸入來運行代碼并輸出相應結果,但是他不會把代碼保存到一個文件中。學習Python 的最好方法就是在交互式解釋器中練習,在你需要測試一些模塊時,交互式解釋器也非常有用。
Python 解釋器通常被安裝在Linux系統(tǒng)中的 /usr/local/bin 或者 /usr/bin 目錄下,將安裝目錄包含進 Linux 的PATH環(huán)境變量中,以確保可以直接通過輸入 python 命令來啟動它。
在Windows環(huán)境中,安裝完Python環(huán)境后生成一個IDLE軟件。打開軟件我們可以使用類似 Linux Shell 的操作方式交互式的輸入Python代碼。
Python解釋器從命令行讀取命令時,我們稱解釋器工作于 交互模式。這種模式下它根據(jù) 主提示符 來執(zhí)行,主提示符通常標識為三個大于號(>>>);繼續(xù)的部分被稱為 從屬(次)提示符,由三個點標識 (...) (一般環(huán)境下可能不顯示)。在第一行之前,解釋器打印歡迎信息、版本號和授權提示。輸入多行結構時需要從屬提示符。
例如,下面這個 if 語句:
在交互模式下只能輸入Python代碼,而不能輸入系統(tǒng)的命令。你必須運行完一條語句,然后才能輸入另一條語句。對于簡單語句來說,只要按下Enter鍵就可以運行輸入的語句,對于復合語句,必須多提交一個空行來結束該語句。要告訴交互模式下的解釋器已經(jīng)輸入完了多行語句,必須要插入一個空行,也就是說你必須按下Enter鍵兩次,才能運行一條復合語句。
通常你可以在交互式解釋器的主窗口中輸入一個文件結束符(Linux系統(tǒng)是 Ctrl + D,Windows 系統(tǒng)是 Ctrl + Z)讓解釋器以 0 狀態(tài)碼退出。或者,你可以通過輸入 quit() 命令退出解釋器。
(2)使用解釋器運行Python文件
Python 解釋器有些操作類似 Linux shell,當在shell中直接調用解釋器時為交互模式(以stdin作為標準輸入),它交互的解釋并執(zhí)行命令;當使用文件名作為參數(shù)或以文件作為標準輸入調用解釋器時,它讀取文件并將文件作為腳本執(zhí)行。
Python 腳本使用擴展名 .py,Linux平臺還可以在不明確指定 Python 解釋器的情況下,直接運行Python文件。 這種情況下你需要在你的腳本的第一行指定我們所使用的Python解釋器的路徑:#! /usr/bin/env python。
當然我們需要確保Linux的 env 環(huán)境變量的 PATH 變量中包含Python解釋器的路徑。
注意:在Linux系統(tǒng)中,我們直接執(zhí)行Python腳本文件時,需要文件對執(zhí)行用戶有執(zhí)行權限。
啟動 Python 解釋器還可以使用 python -ccommand [arg] ...,這種方法可以在 命令行 執(zhí)行 Python 語句,類似于 shell 中的 -c 選項。由于 Python 語句通常會包含空格或其他特殊 shell 字符,一般建議將 命令 用單引號包裹起來。
有一些 Python 模塊也可以當作腳本使用。你可以使用 python -m module [arg] ... 命令調用它們,這類似在命令行中鍵入完整的路徑名來執(zhí)行 模塊 源文件一樣。
使用腳本文件時,經(jīng)常會運行腳本然后進入交互模式。這也可以通過在腳本之前加上 -i 參數(shù)來實現(xiàn)。
調用解釋器時,腳本名和附加參數(shù)會傳入到一個名為 sys.argv 的字符串列表。通過導入 sys模塊,執(zhí)行 sys.argv[0],sys.argv[1]... 獲取這個列表中的元素。列表的長度大于等于1,沒有給定腳本和參數(shù)時,它至少也有一個元素:sys.argv[0] ,此時他為空字符串。
腳本名指定為 '-' (表示標準輸入)時, sys.argv[0] 被設定為 '-';使用 -c 指令 時, sys.argv[0] 被設定為 '-c';使用 -m 模塊 參數(shù)時,sys.argv[0]被設定為指定模塊的全名 -c指令 或者 -m 模塊 之后的參數(shù)不會被 Python 解釋器的選項處理機制所截獲,而是留在 sys.argv 中,供腳本命令操作。
Python命令選項:
(3)使用 PythonIDE(pycharm)編輯Python文件
Python的IDE使用方式和其他語言并無大的區(qū)別,這里我們通常使用pycharm軟件在windows系統(tǒng)下開發(fā)Python程序。
由于Python是可以跨平臺運行的(Python文件直接運行在虛擬機上,不用關心具體硬件和操作系統(tǒng)),所以通常我們在Windows環(huán)境下開發(fā)的腳本可以直接運行在Linux環(huán)境下。對于在Linux環(huán)境下開發(fā)的大型項目或使用框架開發(fā)的項目,可能需要在Linux環(huán)境下運行項目而且可能有很多的環(huán)境依賴。這時我們甚至可以配置pycharm直接同步服務器端的代碼到本地,還可以配置使用服務器端的開發(fā)環(huán)境,在本地直接執(zhí)行遠端服務器的運行命令,并將遠端的運行結果同步回本地。
關于pycharm軟件的使用我們會專門出一節(jié)教程。
總結
以上是生活随笔為你收集整理的argv python 提示输入_Python解释器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言——数组、函数、指针
- 下一篇: python爬取TED演讲视频(代码)