推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
datou
V2EX  ›  Python

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

  •  
  •   datou · Jun 5, 2019 · 12961 views
    This topic created in 2713 days ago, the information mentioned may be changed or developed.
    前阵子将某个 sdk 的 py2.7 版本修改成 py3 的

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

    v2 的各位会在 if 语句加上圆括号吗?
    47 replies  •  2019-06-06 08:03:47 +08:00
    kingmo888
    kingmo888
    Jun 5, 2019
    1
    绝对不会!!!!
    boxvivi007
    boxvivi007
    Jun 5, 2019
    2
    不会
    jdhao
    jdhao
    Jun 5, 2019 via Android❤️1
    3
    看情况,如果 if 后面多个比较复杂的判断,加上括号会更清晰
    mrchi
    mrchi
    Jun 5, 2019
    4
    @jdhao 同意
    collector
    collector
    Jun 5, 2019
    5
    判断的条件比较多的时候会加
    zdnyp
    zdnyp
    Jun 5, 2019
    6
    不会
    flyingghost
    flyingghost
    Jun 5, 2019❤️2
    7
    为什么需要括号?
    1,定界符。这个作用发生在词法解析的时候。python 空格就可以做到。
    2,帮助阅读理解。这个作用发生在人类阅读代码的时候。复杂的表达式加几个括号理解起来比强背运算符优先级要容易多了。

    所以一般没必要加。复杂的话酌情加。
    linvaux
    linvaux
    Jun 5, 2019 via Android
    8
    条件少的话不会,多的话就要加上了
    jjx
    jjx
    Jun 5, 2019❤️2
    9
    显然, 楼主不用

    pycharm/idea
    dugive
    dugive
    Jun 5, 2019 via Android
    10
    条件多的话也不会啊,套两层括号反而不舒服
    sannian
    sannian
    Jun 5, 2019
    11
    不加
    cashew
    cashew
    Jun 5, 2019 via Android
    12
    我就是为了少用括号,才用 Python 的啊。(逃。。。
    5oiR5piv5YK76YC8
    5oiR5piv5YK76YC8
    Jun 5, 2019
    13
    多个条件的情况下,会加上,代码先是给人看的
    wodexiaogou
    wodexiaogou
    Jun 5, 2019
    14
    肯定不加,python 本就是强缩进,语句很清楚,还加括号干嘛,多此一举
    fank99
    fank99
    Jun 5, 2019
    15
    不会
    darksword21
    darksword21
    Jun 5, 2019 via iPhone
    16
    不加
    okwork
    okwork
    Jun 5, 2019
    17
    和运算符优先级差不多,a * b + 3 为了直观写成 (a * b) + 3 逻辑更显眼。
    shawndev
    shawndev
    Jun 5, 2019
    18
    never
    Takamine
    Takamine
    Jun 5, 2019 via Android
    19
    看情况,复杂判断条件我会加。
    忽略运算符自身的优先级顺序,以括号增加可靠性。(。ò ∀ ó。)
    CQCQCQ
    CQCQCQ
    Jun 5, 2019 via iPhone
    20
    酌情吧,比如 a or b and c 和 a or (b and c)
    shm7
    shm7
    Jun 5, 2019 via iPhone
    21
    您放屁会脱裤子吗?
    voidcomma
    voidcomma
    Jun 5, 2019
    22
    不会,Pycharm 告诉我这是多余的,我就删掉了。
    NSAgold
    NSAgold
    Jun 5, 2019 via Android
    23
    不会。复杂的话为了阅读方便会再写注释。
    keepeye
    keepeye
    Jun 5, 2019
    24
    有时候搞不清楚运算符优先级,就局部括号
    omph
    omph
    Jun 5, 2019
    25
    啥时候能淘汰掉方括号,输入真难受
    pmispig
    pmispig
    Jun 5, 2019
    26
    会,单条件也会加,看着舒服有安全感
    weyou
    weyou
    Jun 5, 2019 via Android
    27
    不会整体加括号,多条件也只是单个条件加
    abcdabcd987
    abcdabcd987
    Jun 5, 2019❤️1
    28
    对于长 if 和长表达式,加括号就可以很自然地换行了,不用在最后打 \
    我觉得在这样的情况下加括号其实还蛮好的,比起\我更喜欢括号
    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
    aaronhua
    aaronhua
    Jun 5, 2019
    29
    一些运算的优先级不是很明显的时候会加上,没事不会加。
    kiwier
    kiwier
    Jun 5, 2019❤️1
    30
    不用 py,缩进太坑
    metamask
    metamask
    Jun 5, 2019
    31
    PEP8 不支持这种做法吧?

    如果 if 判断太长的话,拆成多个再 if 拼接
    abcdabcd987
    abcdabcd987
    Jun 5, 2019
    32
    @freakxx #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
    exceloo
    exceloo
    Jun 5, 2019❤️1
    34
    会的,工作用 js,习惯改不了,还要经常在 python 里面写 var
    popbayun
    popbayun
    Jun 5, 2019
    35
    你是从哪个语言转过来的
    firejoke
    firejoke
    Jun 5, 2019
    36
    比如:
    ```python
    _partiton = disk.getFirstPartition()
    while _partiton:
    if (_partiton.type == parted.PARTITION_FREESPACE
    and _partiton.path == partition['path']
    and _partiton.busy == partition['busy']
    and abs(
    _partiton.getSize(unit="GB") -
    float(partition['size'])
    ) <= 0.001
    and _partiton.active == partition['active']
    and _partiton.geometry.start == partition['geometry_start']
    and _partiton.geometry.end == partition['geometry_end']):
    break
    _partiton = _partiton.nextPartition()
    ```
    firejoke
    firejoke
    Jun 5, 2019
    37
    @firejoke 为了不用 \
    xsiong
    xsiong
    Jun 5, 2019
    38
    为什么要加?我 java 转过来的都不想加
    Macolor21
    Macolor21
    Jun 5, 2019 via iPhone
    39
    Macolor21
    Macolor21
    Jun 5, 2019 via iPhone
    40
    @xsiong 不小心发出去了,java 转 python 后具体负责什么呢🤔
    palmers
    palmers
    Jun 5, 2019
    41
    我其实特别想加上花括号
    ysc3839
    ysc3839
    Jun 5, 2019 via Android
    42
    不会
    vkhsyj
    vkhsyj
    Jun 5, 2019
    43
    不会,这种风格违反怕 python 习惯,正确做法是用括号进行分组,让逻辑更加清晰
    loading
    loading
    Jun 5, 2019 via Android
    44
    一个不会加条件不加,多了不加就傻了。
    Hopetree
    Hopetree
    Jun 5, 2019
    45
    少于 3 个条件的不需要,超过的可能需要,或者把条件分离一下,哪有都用的
    zgl263885
    zgl263885
    Jun 6, 2019 via iPhone
    46
    加,能加都加
    mseasons
    mseasons
    Jun 6, 2019
    47
    你写 Python 像 C++
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1463 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 164ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    ♥ Do have faith in what you're doing.