USF MSDS501 計算數據科學中文講義 1.2 Python 工具的初次嘗試

來源: ApacheCN『USF MSDS501 計算數據科學中文講義』翻譯項目

原文:A first taste of Python toolshtml

譯者:飛龍python

協議:CC BY-NC-SA 4.0git

加載命令行應用

啓動Terminal.app(Mac)或任何bash 終端shell,它是 UNIX 風格的命令行提示符程序。你應該看到一個閃爍的光標和一個$提示符:程序員

$

上面的$符號只是提示,終端正在等待您輸入內容。執行命令後,您將再次看到$提示符。github

命令行是一個很是低級的接口,用於與計算機的操做系統進行通訊。您能夠將終端視爲診斷計算機,機械師能夠將其插入汽車中,來獲取控制權。儀表板相似於咱們大多數時候使用的窗口圖形界面。成爲一名程序員就像成爲一名機械師;有時你須要更強大但更復雜的工具來操做機器。shell

你應該或多或少老是運行一個命令行 shell,以防你須要作一些低級別的事情。機械師在他或她開始工做時所作的第一件事,就是鏈接診斷計算機。你也應該這樣。apache

命令行其實是一個完整的編程語言,包含循環和全部內容,但大多數時候咱們只是執行命令。命令具備參數,就像編程語言中的函數調用具備參數同樣。如下是如何在命令行打招呼:編程

$ 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 程序應該在 Anacondabin(二進制)目錄中,該目錄包含全部二進制可執行文件。若是你沒有在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
$

如下是最多見錯誤的解決方案:

  1. 不要將.txt放在文件名的末尾;它必須是.py
  2. 不要使用 MS Word 或任何其餘文字處理器;你認爲它是文本,但事實並不是如此。有不少文本編輯器,包括 Mac 的TextEdit.app。只需確保保存爲純文本而不是「富文本」。還有不少文本編輯器,如 SublimeTextMate。(若是你真的很硬核,你將學習viemacs,你會看到我在課堂上使用它。)你也能夠在命令行中使用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...
...

這將啓動一個程序,在您的瀏覽器中啓動一個選項卡:

<img src="https://user-gold-cdn.xitu.io...;h=1000&f=png&s=19693" width="60%">

單擊Notebook類別下的Python 3圖標,可爲您建立一個新的筆記本窗口:

<img src="https://user-gold-cdn.xitu.io...;h=388&f=png&s=14891" width="80%">

In []旁邊的第一個單元格中鍵入500 + 1。您應該看到在它下面的Out部分生成的輸出 501。按control-enter,或工具欄中的右三角形來執行該單元格。

這是一個交互式環境,因此你能夠返回去編輯500 + 1,好比說print(500 + 1)。 這樣作,而後再次點擊control-enter來運行。 你應該獲得相同的輸出。

您應該可以很是快速地測試 Python 小程序或代碼段。重複這些過程,直到它們成爲第二本能。

相關文章
相關標籤/搜索