推荐学习书目
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 · 12471 views
    This topic created in 2542 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
        1
    kingmo888  
       Jun 5, 2019
    绝对不会!!!!
    boxvivi007
        2
    boxvivi007  
       Jun 5, 2019
    不会
    jdhao
        3
    jdhao  
       Jun 5, 2019 via Android   ❤️ 1
    看情况,如果 if 后面多个比较复杂的判断,加上括号会更清晰
    mrchi
        4
    mrchi  
       Jun 5, 2019
    @jdhao 同意
    collector
        5
    collector  
       Jun 5, 2019
    判断的条件比较多的时候会加
    zdnyp
        6
    zdnyp  
       Jun 5, 2019
    不会
    flyingghost
        7
    flyingghost  
       Jun 5, 2019   ❤️ 2
    为什么需要括号?
    1,定界符。这个作用发生在词法解析的时候。python 空格就可以做到。
    2,帮助阅读理解。这个作用发生在人类阅读代码的时候。复杂的表达式加几个括号理解起来比强背运算符优先级要容易多了。

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

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

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