2015-10-18 89 views
0

在Python,我是來實現,寫表達式時,你可以,如果你想使用括號。我給你舉個例子:在Python表達式中使用括號的最佳做法?

while count > 10: 

while (count > 10): 

都是由編譯器所接受。用括號中的python表達式時

我的問題是什麼是最好的做法?即何時應該在表達式中使用括號?

,因爲我是從實際需要他們(C,Java的...)語言用於
+3

只有當你真的需要。如果你的表情非常複雜,你可以將它分解成單獨的行。 – TigerhawkT3

+0

我問這個問題的原因是我最近一直在做一些C#並且已經開始使用更多的括號,現在我的代碼在使用括號時變得不一致。現在,如果python會在行尾使用分號...... –

+3

@N_Soong強烈建議您不要僅僅因爲習慣於使用其他語言而使用括號。首先:編寫慣用的Python,因爲其他Python程序員更容易閱讀。另一種:通常喜歡的風格出現了,因爲它適合於設計補充語言的模式(在這種情況下是表達空白)。最後:如果你不分區,那麼更容易犯新手錯誤,混淆語言特徵。如果你正在Python中編寫'for'循環並使用parens,那麼編寫'for(i = 0; i <= 10; i ++)'這是無效的呢? –

回答

1

我總是寫括號。在我看來,它也使代碼更易於閱讀。
然而,當實際需要,像計算複合表達式括弧只有用。沒有其他理由要添加括號。

1

只有當它創建明確的目的。

if (condition_one and condition_two) or condition_three: 

是好的,即使您刪除了parens它仍然工作相同。這不是明顯,在andor更高的運算符優先級(除非你已經採取記住它的時間)。同樣沒有一個錯誤,你做與數學:

(2 * 3)/6 

顯然,如果你需要重寫運算符優先級,括號是做

(2 + 3)/6 != 2 + 3/6 
condition_one and (condition_two or condition_three) != \ 
    condition_one and condition_two or condition_three 

然而括號不添加額外的「噪音」的方式到沒有必要的路線。謹慎使用它們,只有在實際需要時才使用它們。

if (this) and (that) and (the_other): 

應該

if all([this, that, the_other]) 

或至少

if this and that and the_other 
4

在您所提供的示例中,括號內是沒有必要的。他們凌亂的代碼沒有任何特殊原因(我能想到)

使用括號的一些原因。使用方括號:

1)提高代碼的清晰度

a * b + c(a * b) + c相當,但後者更清晰。結合更復雜的代碼時,清晰度方面更加明顯,如三元操作。

2)覆蓋默認操作

(a + b) * ca + b * c的順序給予不同的行爲。同樣,X or Y and Z(X or Y) and Z不同。

此外,使用括號可以減少程序員通過明確指定順序來記憶隱含的order of evaluation的需要。

相關問題