來源: ApacheCN『USF MSDS501 計算數據科學中文講義』翻譯項目原文:A first taste of Python tools
譯者:飛龍
協議:CC BY-NC-SA 4.0
加載命令行應用
啟動
Terminal.app
(Mac)或任何
bash
終端
,
shell
,它是 UNIX 風格的
命令行提示符
程序。你應該看到一個閃爍的光標和一個
$
提示符:
$
上面的
$
符號只是提示,終端正在等待您輸入內容。執行命令后,您將再次看到
$
提示符。
命令行是一個非常低級的接口,用于與計算機的操作系統進行通信。您可以將終端視為診斷計算機,機械師可以將其插入汽車中,來獲取控制權。儀表板類似于我們大多數時候使用的窗口圖形界面。成為一名程序員就像成為一名機械師;有時你需要更強大但更復雜的工具來操作機器。
你應該或多或少總是運行一個命令行 shell,以防你需要做一些低級別的事情。機械師在他或她開始工作時所做的第一件事,就是連接診斷計算機。你也應該這樣。
命令行實際上是一個完整的編程語言,包含循環和所有內容,但大多數時候我們只是執行命令。命令具有參數,就像編程語言中的函數調用具有參數一樣。以下是如何在命令行打招呼:
$ echo "hello"
hello
$
通過按返回鍵終止命令。
echo
命令類似于 Python 代碼中的
print
命令。
執行該命令后,提示符將返回,指示您可以鍵入另一個命令。
我們可以做很多事情; 這是另一個:
$ date
Wed Jul 12 14:18:51 PDT 2017
我們可以將一個參數傳遞給命令(類似 Python 中的函數調用):
$ date "+%Y-%m-%d"
2018-07-08
這是一個很酷的例子,來自命令行的循環檢查所有
.md
文件(你不需要在實驗中運行這個文件;我只是在這里展示):
$ for f in *.md; do echo $f; done
aws.md
bash-intro.md
combinations.md
complexity.md
computation.md
data-in-memory.md
data.md
files.md
git.md
operations.md
planning.md
programming.md
reading-code.md
sqrt.md
環境健全性檢查
在命令行中,鍵入以下命令以驗證您是否可以訪問
python3
:
$ which python3
/Users/parrt/anaconda3/bin/python3
或者,更好的是,確保默認的 Python 是版本 3:
$ which python
/Users/parrt/anaconda3/bin/python
Python 程序應該在 Anaconda
bin
(二進制)目錄中,該目錄包含所有二進制可執行文件。如果你沒有在
which
命令的輸出中看到 anaconda,你需要查看 Anaconda 的文檔,并找出你沒有運行適當的 Python 的原因。(很可能你的
PATH
環境變量有問題。)現在可以使用任何 3.X 版本的 Python 運行了。
接下來,運行該程序并確保您有最新版本如 3.6.5:
$ python
Python 3.6.5 | packaged by conda-forge | (default, Mar 30 2018, 00:00:55)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
接下來嘗試導入一個庫:
$ python
Python 3.6.5 | packaged by conda-forge | (default, Mar 30 2018, 00:00:55)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>>
你不應該得到錯誤。
另請參閱我的書機器學習機制中的計算機環境健全性檢查。
交互式 Python
現在讓我們跳轉到交互式 Python shell。簡單來說,它與控制計算機的 bash 命令行 shell 相同。兩者都是編程語言;他們只是有不同的專長。當我們從 bash shell 跳到 Python 的 shell 時,它就像是從法國跳到德國邊境。我們不得不停止說法語并開始講德語。(或者,如果你是美國人,請繼續說英語,因為我們很懶,不懂任何外語。哈哈)當你退出 Python 解釋器時,你會回到 bash 世界,就像你從德國到法國。
要進入 Python 世界,請從 bash
$
提示符輸入
python
,就像我們在上一節中所做的那樣。您應該看到它正在使用
Anaconda
版本。 如果沒有,這意味著您正在使用系統上的默認 Python。
現在,從 Python 提示符
>>>
(我們不再使用
bash
),鍵入
500 + 1
后跟換行符。你應該看到這樣的東西:
$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 500+1
501
>>>
Python 已經求值了表達式并將結果打印回屏幕。好像我們使用了
print
函數調用,這給了我們相同的結果:
>>> print(500+1)
501
Python 交互式 shell 立即打印表達式值,但在將程序作為腳本運行時(即不是交互式)則不是這種情況。
要退出交互式 shell 并返回命令行(終端程序),請鍵入
quit()
(或
ctrl-D
)并按下回車:
>>> quit()
$
$
提示符表示您回到了 bash 命令行。 您不能再鍵入 python 代碼。
腳本化 Python
訪問磁盤上合適的目錄(文件夾),或創建一個,例如
/Users/YOURID/msan501/inclass
。(
不要在任何目錄或文件名中使用空格......永遠不要!
)現在在該目錄中創建一個名為
hello.py
的**文本文件,其中只包含一行:
500+1
使用您選擇的編輯器,雖然
nano
是一個很好的編輯器,因為當我們進行云計算時,您將能夠在遠程服務器上使用它。 Sublime 和 TextEdit.app 也有效。
這個“代碼”正是您在交互式 Python shell 中首先輸入的內容。 將文件保存在
inclass
目錄或任何調用目錄中。
一旦使用編輯器將 Python 文件寫入磁盤,您應該能夠使用命令行中的
cd
(更改目錄)跳轉到該目錄:
$ cd /Users/YOURID/msan501/inclass
使用
ls
獲取目錄列表:
$ ls
hello.py
通過在命令行鍵入以下內容,驗證是否已正確創建 Python 腳本:
$ cat hello.py
500+1
$
以下是最常見錯誤的解決方案:
-
不要將
.txt
放在文件名的末尾;它必須是.py
-
不要使用 MS Word 或任何其他文字處理器;你認為它是文本,但事實并非如此。有很多文本編輯器,包括 Mac 的
TextEdit.app
。只需確保保存為純文本而不是“富文本”。還有很多文本編輯器,如 Sublime 和 TextMate。(如果你真的很硬核,你將學習vi
或emacs
,你會看到我在課堂上使用它。)你也可以在命令行中使用nano
,直接在命令行窗口中進行編輯。
現在,我們將運行該程序/腳本:
$ python hello.py
$
我們沒有任何輸出。這是一個至關重要的區別。交互式 Python shell 會立即打印表達式值,因為它是交互式的。當您從命令行運行文件時,它假定您希望像腳本一樣,以批處理模式執行代碼。這就是為什么我們沒有
print
語句就得不到任何輸出。
現在編輯該文件并將其更改為:
print(500+1)
保存文件并重新運行。 現在您應該看到:
$ python hello.py
501
$
Jupyter 筆記本(通過 Jupyter Lab)
現在,除了使用基于 Jupyter Lab 瀏覽器的環境之外,我們將做同樣的事情。 (請參閱正在編寫的 ML 書中的您的機器學習開發環境來了解更多信息。)
從命令行啟動 Jupyter:
$ jupyter lab
I 11:27:00.606 LabApp] [jupyter_nbextensions_configurator] enabled 0.2.8
[I 11:27:00.613 LabApp] JupyterLab beta preview extension loaded from /Users/parrt/anaconda3/lib/python3.6/site-packages/jupyterlab
[I 11:27:00.613 LabApp] JupyterLab application directory is /Users/parrt/anaconda3/share/jupyter/lab
[W 11:27:00.616 LabApp] JupyterLab server extension not enabled, manually loading...
...
這將啟動一個程序,在您的瀏覽器中啟動一個選項卡:
單擊
Notebook
類別下的
Python 3
圖標,可為您創建一個新的筆記本窗口:
在
In []
旁邊的第一個單元格中鍵入
500 + 1
。您應該看到在它下面的
Out
部分生成的輸出 501。按
control-enter
,或工具欄中的右三角形來執行該單元格。
這是一個交互式環境,所以你可以返回去編輯
500 + 1
,比如說
print(500 + 1)
。 這樣做,然后再次點擊
control-enter
來運行。 你應該得到相同的輸出。
您應該能夠非常快速地測試 Python 小程序或代碼段。重復這些過程,直到它們成為第二本能。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
