十大魔術命令:Python中工作效率飆升之策

全文共1899字,預計學習時長8分鐘


十大魔術命令:Python中工作效率飆升之策

圖源:unsplash


Python之所以能成為最通用的編程語言,與其集成新功能時的靈活性分不開。這就不得不提到魔術命令——添加到pythonshell的重要特性之一。


python中的魔術命令到底是什麼?


魔術命令是常規python代碼的增強,通常以“%”字符為前綴。這些命令由IPython內核提供,基本上是為了解決常見問題而添加的,同時也為代碼提供了一些快捷方式。


魔術命令有兩種類型:%前綴和%%前綴。% 前綴表示命令在一行代碼上操作,而%% 前綴允許命令在整個計算單元上操作。


下面是一些魔術命令及其實現,都在JupyterNotebook中執行。


十大魔術命令:Python中工作效率飆升之策

圖源:unsplash


運行外部文件


嘗試在JupyterNotebook中運行一些代碼片段時,希望運行位於某個目錄中的外部代碼文件。%運行允許從Jupyter Notebook運行任何外部python文件。


十大魔術命令:Python中工作效率飆升之策

上面的文件myCode.py包含一個輸出上述語句的簡單腳本。


十大魔術命令:Python中工作效率飆升之策

如果指定包含%run命令路徑的文件名,它將執行該文件。


注:%運行也允許執行外部Jupyter Notebook。


代碼執行時間


有沒有想過運行計算單元需要多長時間?Time魔術命令允許跟蹤計算單元的總執行情況。由於將在此處處理整個計算單元,因此使用%%作為time關鍵字之前的前綴。


十大魔術命令:Python中工作效率飆升之策

上面的計算單元包括一個帶有隨機計算的for循環。%%time有助於獲得運行for循環所需的時間。


將內容複製到外部文件


大多數時候,有必要將內容直接從JupyterNotebook中添加到python腳本或文本文件中。可以直接通過在代碼之前添加writefile命令來導出單元內容,而不是複製所有內容並創建一個新文件。


注意,命令前面的double %表示將導出單元的全部內容。


十大魔術命令:Python中工作效率飆升之策

因為已經用一些內容創建了這個文件,所以它顯示了“OverwritemyCode.py”。指定它將用上面圖像中顯示的內容覆蓋原始內容。


列出所有變量


這個魔術命令顯示了整個notebook中使用的所有變量。以下是3個變量——2個字符串和1個整數。如果運行%who,它將列出定義的所有3個變量。


<code>

a

=

"hello"

b

=

"Good Morning"

c

=

1

/<code>
十大魔術命令:Python中工作效率飆升之策

上面的代碼顯示了所有的變量,而與它們的數據類型無關。


十大魔術命令:Python中工作效率飆升之策

為了顯示特定的數據類型變量,需要在魔術命令之後傳遞數據類型。上面的代碼將所有字符串數據類型變量顯示為其輸出。


十大魔術命令:Python中工作效率飆升之策

圖源:unsplash


在notebook之間共享變量


這個魔術命令允許在不同的JupyterNotebook之間共享任何變量。需要使用魔術命令傳遞原始變量。要獲取該變量,需要傳遞帶有“-r”參數的相同命令。


這是第一個notebook的樣子:


十大魔術命令:Python中工作效率飆升之策

獲取這些數據所需的代碼寫在另一個notebook裡。


十大魔術命令:Python中工作效率飆升之策

這可能是在不同的notebook之間共享任何數據類型的數據的最簡單的方法。


顯示外部文件的內容


通常需要將外部文件中的幾行代碼複製到代碼中。%pycat允許在任何目錄中顯示任何文件的內容,而不是通過冗長的過程來獲取文件並將其打開以進行復制。


十大魔術命令:Python中工作效率飆升之策

它將外部文件的所有內容顯示為其輸出。就其應用而言,可以看作是%writefile的反向。


十大魔術命令:Python中工作效率飆升之策

圖源:unsplash


執行html腳本


%% html允許在單元中編寫html代碼。現在,單元將充當一個html編輯器,輸出單元的html。


下面的代碼包含一個用html創建的簡單表。可以注意到html輸出顯示了預期的表。


<code>%%html

<

html

>

<

body

>

<

table

>

<

tr

>

<

th

>

Name

th

>

<

th

>

Country

th

>

<

th

>

Age

th

>

tr

>

<

tr

>

<

td

>

Sid

td

>

<

td

>

India

td

>

<

td

>

22

td

>

tr

>

<

tr

>

<

td

>

Dave

td

>

<

td

>

UK

td

>

<

td

>

28

td

>

tr

>

table

>

body

>

html

>

/<code>


十大魔術命令:Python中工作效率飆升之策

提示:可以使用類似於HTML魔術命令的%%jsmagic命令在單元中運行Javascript代碼。


顯示Matplotlib圖


%matplotlibinline魔術命令是最流行的命令。這個命令允許Jupyternotebook在notebook中顯示matplotlib圖形。這個命令激活matplotlib對Jupyter Notebook的交互式支持。


<code>

import

random

import

matplotlib.pyplot

as

plt %matplotlib

inline

/<code>


已經導入了一些需要解釋命令功能的庫。


現在將創建兩個隨機列表來繪製圖形:


<code>a = []
b = []

for

i in

range

(

10

): a.

append

(random.randint(

0

,

10

)) b.

append

(random.randint(

0

,

10

))/<code>


現在將繪製數據的散點圖。


<code>

plt

.scatter

(

a

,

b

)/<code>


十大魔術命令:Python中工作效率飆升之策

%matplotlibinlin魔術命令允許在Jupyter Notebook中可視化圖形。


設置環境變量


這個魔術命令可以做三件事——列出所有的環境變量,獲取一個特定環境變量的值,併為一個變量設置一個值。


十大魔術命令:Python中工作效率飆升之策

不帶參數的%env將列出所有環境變量。


十大魔術命令:Python中工作效率飆升之策

帶有單個參數的%env將返回指定參數的值。


' %env變量值:變量'將設置指定變量名的值。


十大魔術命令:Python中工作效率飆升之策

圖源:unsplash


對象的詳細信息


%pinfo提供了與它一起傳遞的對象的詳細信息。它與對象的功能相似。


在下面的代碼片段中,傳遞了一個簡單的字符串' a ',用%pinfo來獲取它的詳細信息。


<code>a = 

"The World Makes Sense!"

%pinfo a/<code>


十大魔術命令:Python中工作效率飆升之策

在上面的輸出中,%pinfo提供了關於字符串對象的所有信息。


可以使用' %lsmagic '命令找到所有魔術命令列表。


十大魔術命令:Python中工作效率飆升之策

這就是提高工作效率,節省時間的十大魔術命令,希望能夠幫助到你。


十大魔術命令:Python中工作效率飆升之策

留言點贊關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範


分享到:


相關文章: