V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
zictos
V2EX  ›  Python

大家写代码时“符号的前后”加空格的吗?比如是 a = 0 还是 a=0?

  •  
  •   zictos · 2020-04-21 11:29:57 +08:00 · 12386 次点击
    这是一个创建于 1707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉不加空格写代码的速度更快,如果是为阅读性考虑,可以在代码写好后通过 ide 格式化代码

    108 条回复    2020-04-22 20:52:50 +08:00
    1  2  
    zooo
        1
    zooo  
       2020-04-21 11:30:30 +08:00
    a = 0 这种,看着舒服些
    srx1982
        2
    srx1982  
       2020-04-21 11:30:40 +08:00
    zooo
        3
    zooo  
       2020-04-21 11:30:55 +08:00
    可以,习惯的问题
    kkkkkrua
        4
    kkkkkrua  
       2020-04-21 11:31:12 +08:00 via iPhone
    靠格式化,自己不特意写,但是写完会特意格式化
    fuwenpei
        5
    fuwenpei  
       2020-04-21 11:31:46 +08:00
    产品狗路过,会轻量 coding,我的习惯是必须加空格🤙🏻
    misaka19000
        6
    misaka19000  
       2020-04-21 11:33:33 +08:00
    必须加,不加看起来很不好看
    misaka19000
        7
    misaka19000  
       2020-04-21 11:34:13 +08:00
    而且写代码更多时间应该是花在了思考上吧,而不是打字的时间
    24bit
        8
    24bit  
       2020-04-21 11:35:45 +08:00
    顺手就加了
    k9982874
        9
    k9982874  
       2020-04-21 11:36:14 +08:00   ❤️ 2
    去把别人写的代码中的空格换行都去掉,然后再去读读代码。
    Cmdhelp
        10
    Cmdhelp  
       2020-04-21 11:36:19 +08:00
    格式化,不然有波浪线看起来很难受,写着写着就养成喜欢 主动加空格了,,,,,然后写 java 的时候。。。哎怎么形容这么操作呢
    苦笑交叉吧
    blip
        11
    blip  
       2020-04-21 11:36:48 +08:00
    虽然 IDE 会格式化但是自己还是习惯手动加上
    wellsc
        12
    wellsc  
       2020-04-21 11:41:02 +08:00
    函数参数赋值的时候不加
    coderluan
        13
    coderluan  
       2020-04-21 11:42:51 +08:00
    自己写的肯定加,但是复制粘贴的代码可能没有,不过最终格式化一遍,就都有了。
    xiri
        14
    xiri  
       2020-04-21 11:45:59 +08:00 via Android   ❤️ 1
    没有格式化的嘛。
    我都是设置保存的时候自动格式化,然后写的时候随意发挥,有事没事按按 ctrl+s 就行了
    ClarkAbe
        15
    ClarkAbe  
       2020-04-21 11:46:12 +08:00 via iPhone
    加啊,不加把空格留着当饭吃啊
    Azul
        16
    Azul  
       2020-04-21 11:47:54 +08:00   ❤️ 4
    HarveyZh
        17
    HarveyZh  
       2020-04-21 11:51:51 +08:00 via Android
    强迫症 加空格
    ClericPy
        18
    ClericPy  
       2020-04-21 11:52:23 +08:00
    别的语言我也就不说什么了, Python 的话, 90%时间用在程序设计上了, coding 的时候遵循 PEP8 并不会多花多少时间
    Joyboo
        19
    Joyboo  
       2020-04-21 11:52:54 +08:00
    各种语言都有相关规范,按规范来就没错了
    CodingNaux
        20
    CodingNaux  
       2020-04-21 11:55:11 +08:00
    为啥会考虑这种问题,有代码格式化..
    LokiSharp
        21
    LokiSharp  
       2020-04-21 11:56:35 +08:00
    IDE 格式化成啥样就是啥样
    kaiki
        22
    kaiki  
       2020-04-21 11:57:35 +08:00
    必须加,连 tab 都要工整
    tozp
        23
    tozp  
       2020-04-21 11:58:03 +08:00
    参数赋值的时候不加,其他时候都加
    orangex
        24
    orangex  
       2020-04-21 12:00:50 +08:00
    昨天面试,在线 coding,被指出不加空格的问题。
    chiu
        25
    chiu  
       2020-04-21 12:01:03 +08:00 via Android   ❤️ 2
    bash 加不了😂
    pcbl
        26
    pcbl  
       2020-04-21 12:12:25 +08:00 via Android
    我想问下你们参数里面也加吗?
    自动补全的参数是没加的,我都是自己再加上。。
    Orenoid
        27
    Orenoid  
       2020-04-21 12:13:14 +08:00
    不刻意处理,直接自动格式化,不过写久了基本都下意识按规范去写了
    avalon0624
        28
    avalon0624  
       2020-04-21 12:15:36 +08:00
    加,按照规范来。
    lostpg
        29
    lostpg  
       2020-04-21 12:16:27 +08:00 via Android
    自己写代码会有意向标准格式靠拢,写完保存也会顺手格式化一下。甚至会自己去研究下 formater 的参数。
    因为看过自己以前刚入门写的,没有格式化的代码,可读性太差了。
    lanhaooclub
        30
    lanhaooclub  
       2020-04-21 12:16:35 +08:00 via Android
    写完格式化+1
    mgrddsj
        31
    mgrddsj  
       2020-04-21 12:18:03 +08:00
    加。但是 Java 里面 for 括号里面加的话,好像可读性会变差?
    polo3584
        32
    polo3584  
       2020-04-21 12:20:35 +08:00
    加,不加的话看着不舒服
    gamexg
        33
    gamexg  
       2020-04-21 12:22:14 +08:00
    自己不加,但是自动格式化系统会添加。
    lingo
        34
    lingo  
       2020-04-21 12:24:12 +08:00
    if (a = b) {
    let a = c
    }
    括号内测不加,等号前后加,然后也是靠格式化
    kneep
        35
    kneep  
       2020-04-21 12:25:58 +08:00 via iPhone
    有些语言是不能加的,能加的我都加,应该说加是主流
    jie170601
        36
    jie170601  
       2020-04-21 12:26:58 +08:00 via Android
    java,以前用 eclipse 写 mapper 吧应该,出现过双击取词不准确,严重影响了复制粘贴的效率,后面就养成习惯了,不加不舒服……
    Tubering
        37
    Tubering  
       2020-04-21 12:28:31 +08:00
    加,不然看起来乱糟糟的
    mazyi
        38
    mazyi  
       2020-04-21 12:34:45 +08:00 via iPhone
    写代码的效率和代码格式无关
    mingyuers
        39
    mingyuers  
       2020-04-21 12:37:50 +08:00
    shell 不能加,哭
    rrfeng
        40
    rrfeng  
       2020-04-21 12:39:02 +08:00
    写 go
    cweijan
        41
    cweijan  
       2020-04-21 12:49:32 +08:00
    不加, 写完格式化, 自动加上.
    sutra
        42
    sutra  
       2020-04-21 13:26:30 +08:00   ❤️ 1
    大部分语言的编码规范都是加的。只不过有些语言从语法上不能有空格,比如 #!/bin/sh 赋值语句。
    然后你也能搜到为什么 shell 不让你放空格: https://blog.csdn.net/u012814856/article/details/89176382
    itskingname
        43
    itskingname  
       2020-04-21 13:30:22 +08:00
    按 PEP-8 规范写代码。没什么好说的。
    lambchasr
        44
    lambchasr  
       2020-04-21 13:33:03 +08:00 via iPhone
    英文标点前后必加空格
    g00001
        45
    g00001  
       2020-04-21 13:35:08 +08:00
    如果表达式很短,多少一个空格并不影响到阅读代码,曾经见过某些特别在意这些问题,例如 JS 尾部加不加分号,等号前面是不是有空格, 然后代码写得代码烂特别不讲究,后来明白了,因为每天混日子,特别闲,所以有时间数空格,而且还见过他们装格式化插件,因为格式化风格吵来吵去争好久,一句话就是特别闲,不用写好代码,所以有时间数分号和空格。
    a1562619919
        46
    a1562619919  
       2020-04-21 13:35:19 +08:00 via Android
    你不已经有答案了,IDE 格式化代码
    lostpg
        47
    lostpg  
       2020-04-21 13:39:36 +08:00 via Android
    @g00001 错误归因
    luren123
        48
    luren123  
       2020-04-21 13:42:34 +08:00
    java 等语言都是这个规范,肯定加啊,好的习惯不需要借助代码格式化,乱七八糟的代码看着都不爽
    senne
        49
    senne  
       2020-04-21 13:43:38 +08:00
    gofmt
    Rico
        50
    Rico  
       2020-04-21 13:46:52 +08:00
    公司 java 代码提交时会进行 style 检查,不符合不让提交。
    Spring618
        51
    Spring618  
       2020-04-21 13:47:22 +08:00   ❤️ 5
    v2ex 真是越来越水了
    2kCS5c0b0ITXE5k2
        52
    2kCS5c0b0ITXE5k2  
       2020-04-21 13:48:29 +08:00 via iPhone
    不加回头来看乱死了就好想我写这段话并没有加任何标点符号不能让人一下子理解这个意思多打个空格不会花你很多时间
    manshisan
        53
    manshisan  
       2020-04-21 13:59:15 +08:00
    会自动格式化,然后就习惯了
    sigl0p
        54
    sigl0p  
       2020-04-21 14:11:39 +08:00
    我听 IDE 的,自动格式化成啥样就啥样。
    lysS
        55
    lysS  
       2020-04-21 14:11:58 +08:00
    a = 0
    a==0
    SY413927
        56
    SY413927  
       2020-04-21 15:02:21 +08:00
    不加难受 a= 0 这样的我能难受死
    supuwoerc
        57
    supuwoerc  
       2020-04-21 15:15:06 +08:00
    自己写不加,写完一句格式化一下,让编辑器加 =。=
    lzuntalented
        58
    lzuntalented  
       2020-04-21 15:34:17 +08:00
    应该要引入下 eslint 做代码检查,vscode 上也可以自动修复格式问题
    grewer
        59
    grewer  
       2020-04-21 16:39:27 +08:00
    不加真的难受
    Ansen
        60
    Ansen  
       2020-04-21 17:04:38 +08:00
    shell 加空格全报错
    itwhat
        61
    itwhat  
       2020-04-21 17:26:38 +08:00
    如果是在函数里参数默认值则不加空格
    如果是单独行则加
    llcfays
        62
    llcfays  
       2020-04-21 17:30:16 +08:00
    这个不是格式化就好了嘛。
    dtw5t
        63
    dtw5t  
       2020-04-21 18:08:26 +08:00
    加空格,阅读体验好很多。字符串使用双引号。
    xlui
        64
    xlui  
       2020-04-21 18:28:24 +08:00 via iPhone
    Java,除了 import,手写的代码基本跟格式化后无异
    keer
        65
    keer  
       2020-04-21 18:37:52 +08:00
    a=0 这种 看着很不专业 说实话
    xlui
        66
    xlui  
       2020-04-21 18:49:16 +08:00 via iPhone
    @xlui Python 就按 PEP 8 来呗
    banliyaya
        67
    banliyaya  
       2020-04-21 19:02:35 +08:00 via iPhone
    我习惯条件判断定义赋值之类的都加
    0x11901
        68
    0x11901  
       2020-04-21 19:13:52 +08:00
    设计运算、赋值的符号左右加空格,其他的符号不加空格。刚学的时候也是不加空格的,后来看了《 C 程序设计语言》里面作者建议这么写之后,感觉非常有道理,就一直这么做了,而且基本上所有的格式化工具也是按照这种模式的。
    MajestySolor
        69
    MajestySolor  
       2020-04-21 19:58:29 +08:00
    加空格看起来舒服读起来也舒服,超级讨厌写啥都是一大坨不加空格的人
    lk920724
        70
    lk920724  
       2020-04-21 20:09:23 +08:00
    加的,原来我是大多数 [
    Higurashi
        71
    Higurashi  
       2020-04-21 21:52:13 +08:00
    我一般是加空格,才开始写代码的时候嫌麻烦,但后来觉得代码简洁更重要。。。
    kukat
        72
    kukat  
       2020-04-21 21:54:25 +08:00
    这还用问? https://prettier.io/ 了解一下,pre-commit hook 过不了 prettier 不让提交
    Higurashi
        73
    Higurashi  
       2020-04-21 21:54:46 +08:00
    对了,我已经实现了目录编号,但暂时还不能在原帖回复你,所以就写在这里了:
    中午的时候转变了思路,现在已经实现。有兴趣的话可以看看,有问题的话也可以提 issue( ̄▽ ̄)/:
    源代码:htt 删除这里 ps://gi 删除这里 thub.com/liuhao326/python 删除这里 tools/blo 删除这里 b/master/AddTitleNumber.py
    使用实例:ht 删除这里 tps://www.cn 删除这里 blogs.com/Hi 删除这里 gurashi-kag 删除这里 ome/p/12 删除这里 747857.html#使用实例
    siganushka
        74
    siganushka  
       2020-04-21 22:13:46 +08:00
    有规范就按规范来,不管是 java 还是 PHP 或者是 JS 都是前后有空格的,规范是无数前人总结出来的最佳实践,照着做就行了,你习不习惯并不重要。
    IgniteWhite
        75
    IgniteWhite  
       2020-04-21 22:34:24 +08:00
    bash 你能加吗
    zictos
        76
    zictos  
    OP
       2020-04-22 02:41:58 +08:00
    @Higurashi 试了感觉好像问题很多,很容易出错。不过这东西我也用不到。随便复制一段文本到文件中,然后随便在某些行的前面加一些#号,运行后肯定会报错。
    完全可以做到不报错啊,但是你得说清楚几个#号算大标题,然后子项又怎么确定?就是我之前跟你说的那些。
    zictos
        77
    zictos  
    OP
       2020-04-22 03:10:38 +08:00
    @Higurashi 刚又试了一下,好像也不是很容易出错。只是复制你上次的帖子中的例子会报错,其他内容很少报错:
    TypeError: write() argument must be str, not None

    另外如果第一行有 6 个#号,第二行只有 3 个#号。第一行是 1,第二行是 1.1 吗?
    20015jjw
        78
    20015jjw  
       2020-04-22 05:52:17 +08:00 via Android
    lint 呗
    虽然我写的时候也手动加
    gcyrn
        79
    gcyrn  
       2020-04-22 06:22:09 +08:00 via Android
    lrh3321
        80
    lrh3321  
       2020-04-22 06:31:49 +08:00 via Android
    让 ide 自动格式化,当某个该出现空格的地方,没有空格的时候,我就知道,又手贱写出语法错误了。
    darknoll
        81
    darknoll  
       2020-04-22 08:00:15 +08:00 via Android
    自己加,不会靠格式化
    Higurashi
        82
    Higurashi  
       2020-04-22 08:23:28 +08:00 via Android
    @zhybzc 嗯,是的,这是因为程序会默认第一个标题为最高级标题。之所以这样设置是因为最高一级标题在后面的情况的情况比较不合逻辑,包括我之前给出的例子也是不合逻辑的。比如:
    # 标题 1

    ### 标题 2

    ### 标题 3

    #### 标题 4

    #### 标题 5

    ## 标题 6

    ##### 标题 7

    ###### 标题 8
    中一般来说我们会将标题 6 视为标题 1 的子标题,而程序正是这样做的。
    不过的确还有一个地方需要完善,那就是你提到的后面出现了比第一个标题级别更高的标题的情况,虽然这种情况不常见但应该也能够正常编号。所以这里还是要完善下。
    conglovely
        83
    conglovely  
       2020-04-22 08:23:56 +08:00
    习惯性 IDE 格式化,会加
    Higurashi
        84
    Higurashi  
       2020-04-22 08:28:39 +08:00 via Android
    @Higurashi 再就是在之前的例子中:
    # 标题 1

    ### 标题 2

    ### 标题 3

    #### 标题 4

    #### 标题 5

    ## 标题 6

    ##### 标题 7

    ###### 标题 8
    因为程序没有事先发现标题 6 的能力,它会默认标题 2 为除标题 1 外的最高级标题,所以程序从标题 6 开始会出错。这里也需要完善一下。
    azhangbing
        85
    azhangbing  
       2020-04-22 08:34:49 +08:00 via iPhone
    加的 凑在一起不好看
    angith
        86
    angith  
       2020-04-22 08:40:14 +08:00 via Android
    加,已经有强迫症了
    xiang0818
        87
    xiang0818  
       2020-04-22 08:48:07 +08:00 via iPhone
    加空格啊,不加代码 checkstyle 过不了,Jkens 不能打包
    ytll21
        88
    ytll21  
       2020-04-22 08:58:22 +08:00
    说写完再格式化的,你们写代码主要是给自己看的还是给别人看的?写完再格式化,那么自己在写的过程中,看见一坨坨的代码挤在一起,不难过吗?对于自己吃饭的手艺,要求再怎么高,我认为都是应该的。
    oahebky
        89
    oahebky  
       2020-04-22 08:58:23 +08:00
    在 Python 主题下问这种问题。
    肯定是没有代码(格式)检查工具。

    赋值加空格:foo = "bar"; egg = "spam"
    函数传参数不加空格:func(key1=value1, key2=value2)
    条件判断加空格:if 1 > 2: print("can't happen")

    还是按标准来吧,就不用费心纠结这种和核心无关的细节了。
    Ariver
        90
    Ariver  
       2020-04-22 09:03:51 +08:00
    bash 脚本不允许加
    si
        91
    si  
       2020-04-22 09:16:56 +08:00
    能自动格式化的手动加,不自动格式化的手动加。
    si
        92
    si  
       2020-04-22 09:17:30 +08:00
    写错了,是:
    能自动格式化的不手动加,不自动格式化的手动加。
    yulihao
        93
    yulihao  
       2020-04-22 09:18:03 +08:00
    我很懒,一直都是 a=0,但是 IDE 会自动帮我纠正为 a = 0 (笑
    llsquaer
        94
    llsquaer  
       2020-04-22 09:19:41 +08:00
    加不加无所谓,,但是最后会 Ctrl+Atl+L ...
    peterpei
        95
    peterpei  
       2020-04-22 09:20:49 +08:00
    加,会看着方便,尤其是那种函数有))))))的,加上空格会好太多
    xiaomimei
        96
    xiaomimei  
       2020-04-22 09:26:48 +08:00
    习惯了,不仅代码里会加,写文档的时候也会在中英数字之间加空格。
    ShundL
        97
    ShundL  
       2020-04-22 09:27:09 +08:00
    某 CDN 的人给我们介绍他们的产品和技术,一口一个阀值。。。
    adinxu
        98
    adinxu  
       2020-04-22 09:28:36 +08:00
    公司规范要求加,,
    amwyyyy
        99
    amwyyyy  
       2020-04-22 09:32:07 +08:00
    有强迫症,这个必须加
    oneisall8955
        100
    oneisall8955  
       2020-04-22 09:36:19 +08:00 via Android
    加空格,不是自己敲,用快捷键格式化一下
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 19:00 · PVG 03:00 · LAX 11:00 · JFK 14:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.