在Python,我是來實現,寫表達式時,你可以,如果你想使用括號。我給你舉個例子:在Python表達式中使用括號的最佳做法?
while count > 10:
和
while (count > 10):
都是由編譯器所接受。用括號中的python表達式時
我的問題是什麼是最好的做法?即何時應該在表達式中使用括號?
,因爲我是從實際需要他們(C,Java的...)語言用於在Python,我是來實現,寫表達式時,你可以,如果你想使用括號。我給你舉個例子:在Python表達式中使用括號的最佳做法?
while count > 10:
和
while (count > 10):
都是由編譯器所接受。用括號中的python表達式時
我的問題是什麼是最好的做法?即何時應該在表達式中使用括號?
,因爲我是從實際需要他們(C,Java的...)語言用於我總是寫括號。在我看來,它也使代碼更易於閱讀。
然而,當實際需要,像計算複合表達式括弧只有用。沒有其他理由要添加括號。
只有當它創建明確的目的。
if (condition_one and condition_two) or condition_three:
是好的,即使您刪除了parens它仍然工作相同。這不是明顯,在and
比or
更高的運算符優先級(除非你已經採取記住它的時間)。同樣沒有一個錯誤,你做與數學:
(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
在您所提供的示例中,括號內是沒有必要的。他們凌亂的代碼沒有任何特殊原因(我能想到)
使用括號的一些原因。使用方括號:
1)提高代碼的清晰度
a * b + c
和(a * b) + c
相當,但後者更清晰。結合更復雜的代碼時,清晰度方面更加明顯,如三元操作。
2)覆蓋默認操作
(a + b) * c
和a + b * c
的順序給予不同的行爲。同樣,X or Y and Z
與(X or Y) and Z
不同。
此外,使用括號可以減少程序員通過明確指定順序來記憶隱含的order of evaluation的需要。
只有當你真的需要。如果你的表情非常複雜,你可以將它分解成單獨的行。 – TigerhawkT3
我問這個問題的原因是我最近一直在做一些C#並且已經開始使用更多的括號,現在我的代碼在使用括號時變得不一致。現在,如果python會在行尾使用分號...... –
@N_Soong強烈建議您不要僅僅因爲習慣於使用其他語言而使用括號。首先:編寫慣用的Python,因爲其他Python程序員更容易閱讀。另一種:通常喜歡的風格出現了,因爲它適合於設計補充語言的模式(在這種情況下是表達空白)。最後:如果你不分區,那麼更容易犯新手錯誤,混淆語言特徵。如果你正在Python中編寫'for'循環並使用parens,那麼編寫'for(i = 0; i <= 10; i ++)'這是無效的呢? –