在python表达式中使用括号的最佳实践?

在python表达式中使用括号的最佳实践?,python,Python,在Python中,我意识到在编写表达式时,如果愿意,可以使用括号。我给你举个例子: while count > 10: 及 编译器都接受这两个选项 我的问题是,在python中使用括号表示表达式时,最佳做法是什么?i、 e.什么时候应该在表达式中使用括号?我总是写括号,因为我习惯于使用实际需要括号的语言(C、Java…)。在我看来,这也使代码更易于阅读。 然而,括号只有在实际需要时才有用,比如计算复合表达式。没有其他理由添加括号 我总是写方括号,因为我习惯于使用实际需要方括号的语言(C、

在Python中,我意识到在编写表达式时,如果愿意,可以使用括号。我给你举个例子:

while count > 10:

编译器都接受这两个选项


我的问题是,在python中使用括号表示表达式时,最佳做法是什么?i、 e.什么时候应该在表达式中使用括号?

我总是写括号,因为我习惯于使用实际需要括号的语言(C、Java…)。在我看来,这也使代码更易于阅读。

然而,括号只有在实际需要时才有用,比如计算复合表达式。没有其他理由添加括号

我总是写方括号,因为我习惯于使用实际需要方括号的语言(C、Java…)。在我看来,这也使代码更易于阅读。

然而,括号只有在实际需要时才有用,比如计算复合表达式。没有其他理由添加括号

只有在目的明确的情况下

if (condition_one and condition_two) or condition_three:
没关系,即使你移除了parens,它仍然可以正常工作。与
相比,
的运算符优先级并不是很明显(除非您花时间记住它)。同样,没有人会因为你在数学方面的表现而责备你:

(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

只有当它创造了清晰的目的

if (condition_one and condition_two) or condition_three:
没关系,即使你移除了parens,它仍然可以正常工作。与
相比,
的运算符优先级并不是很明显(除非您花时间记住它)。同样,没有人会因为你在数学方面的表现而责备你:

(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或Y和Z
不同于
(X或Y)和Z


此外,通过显式指定顺序,使用括号可以减轻程序员记忆隐式命令的需要。

在您提供的示例中,括号不是必需的。他们没有任何特殊原因(我能想到)就把代码弄乱了

使用括号的一些原因。使用括号来:

1)提高代码清晰度

a*b+c
(a*b)+c
是等价的,但后者更清晰。当组合更复杂的代码(如三元操作)时,清晰度方面更为明显

2)覆盖默认操作顺序

(a+b)*c
a+b*c
给出了不同的行为

类似地,
X或Y和Z
不同于
(X或Y)和Z


此外,使用括号可以通过显式指定顺序来减轻程序员记忆隐式命令的需要。

仅当您确实需要时。如果你的表达式非常复杂,你可以把它分成几行。我问这个问题的原因是我最近一直在做一些C#,并且开始更多地使用括号,现在我的代码在使用括号时变得不一致。现在-如果python在一行末尾使用分号就好了…@N_Soong强烈建议你不要使用括号,因为你已经习惯于使用另一种语言了。首先,编写惯用Python是因为其他Python程序员更容易阅读。另一个原因是:通常首选样式的出现是因为它适合于补充语言的设计模式(在本例中是表达性空白)。最后一点:如果你不划分,很容易犯新手错误,混淆语言特性。如果您正在用Python编写一个
for
循环并使用parens,那么编写
for还有多远(i=0;我用C#写C#,用Python写Python。不要试图在它们之间保持一致。只有当你真正需要的时候。如果你的表达式非常复杂,你可以把它分成几行。我问这个问题的原因是我最近一直在做一些C#,并且开始更多地使用括号,现在我的代码在使用括号时变得不一致.现在-如果python在行尾使用分号就好了…@N_Soong强烈建议你不要使用括号,因为你已经习惯了另一种语言。一方面:编写地道的python,因为它更容易让其他python程序员阅读。另一方面:经常出现首选样式,因为它有助于设计模式最后一点:如果不进行划分,就更容易犯新手错误和混淆语言功能。如果您正在用Python编写
for
循环并使用parens,那么编写
for还需要多长时间(i=0;我用C写C,用Python写Python。不要试图在它们之间保持一致。)。