安裝以後該幹啥了?固然是要 say HelloWorld 了。
python
和其它全部命令同樣,在命令行中敲下 python
並回車的時候,操做系統去 PATH
路徑中搜索到了 python.exe
並執行。從這一點看,它和其它程序並無什麼不一樣。好比說:notepad
會打開記事本,explorer
會打開資源管理器。windows
區別在於,python
是一個純粹的命令行程序,它沒有你們熟悉的窗口界面。bash
「注意,可執行程序的
.exe
文件名後綴只是 Windows 系統下的命名風格,輸入命令的時候是省略的。而且在 Linux 系統中可執行文件都沒有.exe
後綴,python
的命令風格是偏 Linux 風格的,因此後面提到 python 的時候直接說python
而不是python.exe
。服務器
執行命令行程序的時候,每每須要能夠帶上 參數(argument)。例如:函數
單獨執行 notepad
,打開一個新的無標題記事本,而若是執行 notepad hello.py
,則會打開這個指定的文本文檔(固然,當前路徑下得有名爲 hello.py
的文件,不然 notepad
會有提示你)。post
python
是一個解釋器程序,它的能力就是 解釋執行 Python 代碼。學習
因此咱們能夠把 Python 代碼做爲參數傳遞給它。最多見的是傳一個文件給它:測試
python hello.py
複製代碼
好比剛纔咱們用記事本建立的 hello.py
文件:ui
「這裏的
.py
文件後綴不是必須的,就像記事本也不必定只能編輯.txt
文件。帶上後綴只是方便操做系統和用戶識別這是一個 Python 源碼文件。spa
不帶參數執行 python
,由於沒有內容能夠解釋,就進入到了交互模式。
交互模式下,在提示符 >>>
後面等待用戶輸入,每輸入一句,就解釋執行一句。
「交互模式下的 helloworld 你們確定早已熟悉,這裏就不充數了,改天再細聊
REPL
!
嚴格來講,沒有參數的意思並非 沒有內容,而是表示 內容源 來自 標準輸入(stdin)。事實上,它等價於:
python -
複製代碼
用一個短槓作參數的時候表示標準輸入,這是 Linux 程序的慣例。所謂標準輸入,不熟悉操做系統的小夥伴姑且能夠認爲就是來自用戶輸入。而相對的,天然就有 標準輸出(stdout)。咱們用 print()
函數就是把結果 打印 在標準輸出中。
stdout
和 stdin
能夠用一道豎線 |
串聯起來造成 管道(pipe),因此能夠寫出下面這種另類的 helloworld:
C:\Users\Davy>echo print('helloworld')|python
helloworld
複製代碼
注意,在 windows 系統下,這裏 echo
後面不能加引號,而在 Linux 系統中則必須加一層引號:
[root@davycloud ~]# echo print('helloworld')|python
-bash: syntax error near unexpected token `(' [root@davycloud ~]# echo "print('helloworld')"|python helloworld 複製代碼
在 Python 安裝 文章中,咱們用了 python --version
來測試 python 程序是否正常。
這種用 -
或 --
傳遞給程序的特殊參數稱之爲 選項(option),一箇中槓(也就是減號 -
) 後面跟一個字母,稱爲 短選項,--
後面跟完整的單詞,稱爲 長選項。
「注意,選項是一種特殊格式的參數,在下面
py
的幫助信息中,就統稱是 args
有的選項只有短或長格式,有的選項既有短的,又有長的。例如 --version
對應的短選項是 -V
(大寫的 V)。
除了 --version
打印版本信息,還有經過 --help
或 -h
打印幫助信息也是比較通用的作法:
「之後遇到不熟悉的命令,均可以先執行
--help
試試。不過值得提醒的是, Windows 系統中的傳統命令是使用/?
表示選項。
python 解釋器中還有如下選項比較有用:
「-c cmd : program passed in as string
把程序以字符串的形式傳給解釋器,例如,helloworld 能夠這樣寫:
C:\Users\Davy>python -c "print('helloworld')"
helloworld
複製代碼
還能夠是多行語句,中間用分號 ;
分隔就好了:
C:\Users\Davy>python -c "import sys;print(sys.version)"
3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)]
複製代碼
「-i : inspect interactively after running script
在執行完腳本後進入到交互模式。
這個選項在學習的狀況下頗有用,下面給你們舉個小例子。
好比學習到函數的時候,定義一個函數要寫多行語句,顯然寫在文件中比較合適。
可是隨後對這個函數的進行練習測試,若是你也寫在文件中,那麼每次都要這樣:
編輯 - 保存 - 運行
每次運行都是從頭開始,這樣是比較麻煩的(由於麻煩因此沒有動圖了):
這時候就可使用 python -i test.py
運行腳本,腳本運行結束後自動進入交互模式。此時腳本里定義的一切對象,仍然能夠訪問。就好像是接在腳本後面繼續寫代碼同樣:
「-m mod : run library module as a script
把模塊看成腳原本運行。
例如,著名的一行代碼啓動一個 HTTP 服務器:
python -m http.server
複製代碼
在安裝 Python 一文中已經和你們介紹過了,模塊所在的文件夾位置,因此上面命令也能夠直接用運行腳本的方式:
python C:\Users\Davy\AppData\Local\Programs\Python\Python38\Lib\http\server.py
Serving HTTP on :: port 8000 (http://[::]:8000/) ...
複製代碼
這裏須要定位到 .py
文件的具體位置,這個在每一個人的環境上都不同,顯然比使用 python -m module
麻煩多了。
這裏能夠看出,module
和在命令行中敲命令有殊途同歸之妙,事實上,它們的原理也差很少。module
也須要有一個 path
變量,保存一個搜索路徑的列表。
這個 path
變量保存在 sys
模塊中:
python -c "import sys;print(sys.path)"
複製代碼
更多具體內容,後面學習到 module
相關內容的時候再詳細討論。
在安裝完成後,咱們使用 py --list
來顯示已安裝的 python
版本列表。這裏簡單介紹下 py
命令的用法。
一樣地,用 -h
或 --help
來獲取幫助信息:
打印信息分爲兩部分,前面是 py
本身的幫助信息,後面是 python
的幫助信息。
usage:
py [launcher-args] [python-args] script [script-args]
Launcher arguments:
-2 : Launch the latest Python 2.x version
-3 : Launch the latest Python 3.x version
-X.Y : Launch the specified Python version
The above all default to 64 bit if a matching 64 bit python is present.
-X.Y-32: Launch the specified 32bit Python version
-X-32 : Launch the latest 32bit Python X version
-X.Y-64: Launch the specified 64bit Python version
-X-64 : Launch the latest 64bit Python X version
-0 --list : List the available pythons
-0p --list-paths : List with paths
複製代碼
除了最下面咱們已經見過的 -0
和 --list
,其它參數都是用來選擇 python 解釋器。不但能區分版本號,還能按 32 位 或 64 位選擇。值得注意的是,版本號只包括前兩位。
若是不帶選擇版本參數,實際對應默認的 python 解釋器。其它全部不是上面這些格式的參數,也做爲 python 解釋器的參數。
因此,在命令行中敲 py
和 python
的效果是同樣的(每次能夠少敲 4 次鍵了,效率大幅提高,✌️),即便帶上了版本參數,也很方便:
C:\Users\Davy>py -0
Installed Pythons found by py Launcher for Windows
-3.8-64 *
-2.7-64
C:\Users\Davy>py -2 --version
Python 2.7.17
C:\Users\Davy>py --version
Python 3.8.1
複製代碼
「爲了演示
py
的功能,特地又安裝了python 2.7
,而且此次沒有加入到PATH
問題來了,pip
這種放在 Script
中的命令怎麼辦呢?
這種狀況,結合使用前面介紹的 -m
選項就能夠了:
C:\Users\Davy>py -2 -m pip --version
pip 19.2.3 from C:\Python27\lib\site-packages\pip (python 2.7)
複製代碼
安裝包的時候也是同樣的:
差點忘了,helloworld 的第 4 種姿式: python -m hello
本文主要介紹 python
解釋器的基本用法,借 helloworld 演示傳入代碼的四種方式:文件,字符串,stdin,module。同時介紹在 windows 下如何使用 py
啓動器運行不一樣版本的 python。
若是本文有幫助,不妨 點贊 + 關注,謝謝!