Python中写if语句时,你们会加上圆括号吗?

前阵子将某个 sdk 的 py2.7 版本修改成 py3 的

发现 if 语句全部加了圆括号

v2 的各位会在 if 语句加上圆括号吗?
Python中写if语句时,你们会加上圆括号吗?

47 回复

绝对不会!!!!


在Python里,if语句的条件部分不需要也不应该加圆括号(除非为了改变运算优先级)。这是Python语法明确规定的,加了反而显得不专业。

比如,直接写:

if x > 5:
    do_something()

只有在条件表达式很复杂、需要明确优先级时,才用括号分组:

if (x > 5 and y < 10) or z == 0:
    do_something()

但大多数情况下,用换行和缩进来提高可读性更好:

if (x > 5 
    and y < 10 
    and some_long_function_call()):
    do_something()

总结:别画蛇添足,按PEP 8的风格写就行。

看情况,如果 if 后面多个比较复杂的判断,加上括号会更清晰

判断的条件比较多的时候会加

为什么需要括号?
1,定界符。这个作用发生在词法解析的时候。python 空格就可以做到。
2,帮助阅读理解。这个作用发生在人类阅读代码的时候。复杂的表达式加几个括号理解起来比强背运算符优先级要容易多了。

所以一般没必要加。复杂的话酌情加。

条件少的话不会,多的话就要加上了

显然, 楼主不用

pycharm/idea

条件多的话也不会啊,套两层括号反而不舒服

我就是为了少用括号,才用 Python 的啊。(逃。。。

多个条件的情况下,会加上,代码先是给人看的

肯定不加,python 本就是强缩进,语句很清楚,还加括号干嘛,多此一举

和运算符优先级差不多,a * b + 3 为了直观写成 (a * b) + 3 逻辑更显眼。

看情况,复杂判断条件我会加。
忽略运算符自身的优先级顺序,以括号增加可靠性。(。ò ∀ ó。)

酌情吧,比如 a or b and c 和 a or (b and c)

您放屁会脱裤子吗?

不会,Pycharm 告诉我这是多余的,我就删掉了。

不会。复杂的话为了阅读方便会再写注释。

有时候搞不清楚运算符优先级,就局部括号

啥时候能淘汰掉方括号,输入真难受

会,单条件也会加,看着舒服有安全感

不会整体加括号,多条件也只是单个条件加

对于长 if 和长表达式,加括号就可以很自然地换行了,不用在最后打 <br>我觉得在这样的情况下加括号其实还蛮好的,比起\我更喜欢括号
PEP 8 做了示范:
https://www.python.org/dev/peps/pep-0008/#multiline-if-statements
https://www.python.org/dev/peps/pep-0008/#should-a-line-break-before-or-after-a-binary-operator

一些运算的优先级不是很明显的时候会加上,没事不会加。

不用 py,缩进太坑

PEP8 不支持这种做法吧?

如果 if 判断太长的话,拆成多个再 if 拼接

#31 "The preferred way of wrapping long lines is by using Python’s implied line continuation inside parentheses, brackets and braces. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation."
https://www.python.org/dev/peps/pep-0008/#maximum-line-length

会的,工作用 js,习惯改不了,还要经常在 python 里面写 var

你是从哪个语言转过来的

比如:
python<br>_partiton = disk.getFirstPartition()<br>while _partiton:<br> if (_partiton.type == parted.PARTITION_FREESPACE<br> and _partiton.path == partition['path']<br> and _partiton.busy == partition['busy']<br> and abs(<br> _partiton.getSize(unit="GB") -<br> float(partition['size'])<br> ) &lt;= 0.001<br> and _partiton.active == partition['active']<br> and _partiton.geometry.start == partition['geometry_start']<br> and _partiton.geometry.end == partition['geometry_end']):<br> break<br> _partiton = _partiton.nextPartition()<br>

为了不用 \

为什么要加?我 java 转过来的都不想加

不小心发出去了,java 转 python 后具体负责什么呢🤔

我其实特别想加上花括号

不会,这种风格违反怕 python 习惯,正确做法是用括号进行分组,让逻辑更加清晰

一个不会加条件不加,多了不加就傻了。

少于 3 个条件的不需要,超过的可能需要,或者把条件分离一下,哪有都用的

加,能加都加

你写 Python 像 C++

回到顶部