被“嫌棄”的分號的一生:不要在Python中使用無用分號了

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

image

我常在C / C ++語言中看到很多分號。在代碼中,分號表示語句終止。Python並未強制使用分號來分隔語句,但因爲分號導致Python亂碼的情況可不少。

最近,筆者正在學習Python的數據科學課程。講師講解了條件語句並編寫了以下代碼:

temp =10;if temp <12: print( It is cold ); cold = True;

筆者當時的反應是:這太可怕了!分號僅在Python中的非典型情況下使用。筆者準備了一篇小指南,解釋爲什麼不應該在Python中使用分號,並列出了少數特殊情況。

語句終止符

image

在許多大衆的編程語言中,需要在每個語句的末尾添加分號。例如,在C ++中:

int c =10;
int a = 5;printf( In C++, semicolon at the end is must );

但Python並非如此。Python是一種簡潔的編程語言,你不需要添加不必要的字符和語法。在Python中,一條語句結束於一行的結尾(方括號,引號或括號除外)。例如:

c = 10
a = 5print( No semicolons in Python )

語句分隔符

Python中的分號表示分隔,而不是終止。它允許在同一行中編寫多個語句。

print( Statement1 ); print( Statement 2 ); print( Statement 3 )

此語法允許在單個語句的末尾加上分號:

print( WhyGod? WHY? );

該語句表示print( ... ),然後在下一句終止。因此它實際上是兩個語句,其中第二個爲空。即使該語言允許使用分號分隔語句,但大多數Python程序員都不會在其代碼中使用它。

image

Python應該是清晰可讀的。分號之類的語法字符會導致不必要的混亂。如果將這樣的代碼發送給經驗豐富的Python程序員,他可能不會再理你了。

temp =10; cold =False;
              if temp<15: print( It is cold ); cold =True; print( Another statement )
          print(cold); print( Done );

將多條語句強制放在一行上會使原本簡單的代碼難以閱讀。

何時使用分號?

那麼問題來了,既然分號既不美觀又礙事,爲什麼Python中允許使用分號?

筆者認爲,這是爲了使兩種編程語言之間的轉換變得稍微容易一些。具有Java,C ++和PHP背景的程序員習慣性地將(無用的)終止符放在每一行的末尾。

但是,在下列這些情況下,分號也會派上用場:

從Shell運行腳本

最常見的一種情況是使用python-c

python-c  import math; t = math.pi;print(int(t))’

另一個用例是exec語句:

exec( fori in [100,200,300]: print(i);print(i*2) )

評估表達式的副作用

image

在Jupyter Notebook之類的交互式環境中工作時,最後一個表達式返回的值將以字符串形式輸出。評估某個函數的副作用真的會很煩人,在matplotlib中查看這個問題會產生贅餘。

筆者將在JupyterNotebook中創建一個簡單的直方圖。如下圖所示,運行此腳本會在輸出時添加多餘的一行:Text(0.5,1.0, Histogram )。

image

這實際上是調用.set_title(...)函數的返回值。爲了抑制輸出,可以在最後一條語句的末尾添加一個分號:

axis.set_title( Histogram ,size=10);

簡潔就是偉大,我們在編寫代碼時應避免添加任何多餘的字符。刪掉那些多餘的分號吧,僅在必要時使用即可。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-06-23
本文作者:讀芯術
本文來自:“讀芯術公衆號”,瞭解相關信息可以關注“讀芯術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章