精华内容
下载资源
问答
  • 2022-02-23 17:19:28

    对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单。

    在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。

    众所周知,Tab在ASCII码中,编码是9,而空格是32。这也就是说,当我们按下一个Tab的时候,即使它看起来就是8个空格(或者4个空格,不同的环境下,Tab可能显示的效果不同),对于电脑来说,却是完全不一样的东西。这也意味着,对于用字符来描述过程的代码来说,极有可能会是决定性的差异。

    尤其是对于一门用空格缩进来区分代码层次的语言——Python。

    我们来看一段代码。

    1

    2

    3

    4

    5

    class MyForm(Form):

        value1 = StringField('value1')

        value2 = StringField('value2')

        value3 = StringField('value3')        #这行用的是Tab缩进

        submit = SubmitField('Submit')

    看起来这个value3变量和其他的变量没有什么不同,然而却出现了这样的报错——缩进错误。

        value3 = StringField('value3')

        ^

    IndentationError: unexpected indent

    其实Python并没有强制要求你用Tab缩进或者用空格缩进,甚至空格按几个都没有强制要求(但在PEP8中建议了使用4个空格作为缩进:https://www.python.org/dev/peps/pep-0008/),但是却绝对!绝对不能混用Tab和空格,那么这里,是不是空格和Tab的区别就显得很大了呢?

    这个时候有的童鞋就要说了,我用PyCharm(或者其他IDE)怎么从来都没有出现这样的问题呢?

    其实,很多IDE对Tab键做了各种各样的优化,其中有一条就是,将Tab键展开为为空格,也就是说,当你按下Tab的时候,IDE实际上帮你把一个「9」转换成了四个(或者八个)「32」。但是要注意,不是所有的IDE都帮你做了这样的工作!同理,对于好纯洁好不做作的编辑器Vim来说,肯定也不会帮你做这样的工作了。

    既然Tab在不同的环境下展现不一样,而空格却永远都是一样的。对于一些细致排版缩进来说(比如说想把每一行的注释都对齐),用空格也更加精确。这样看起来,确实是用空格来写代码要好于用Tab呢。

    空格代替Tab的好处:

    1. 空格在各种情况下代码都是你想要的样子。而 tab 仅仅当你与代码作者的 tab 尺寸设定为相同时,代码才好看。修改 tab 尺寸并不能解决这个问题,因为你很难做到每打开一个文件就修改一次 tab 尺寸,而每个人通常有不同的习惯(POSIX/Unix 标准的 tab 应当为 8 字符宽度,Linus 大神也规定 Linux 内核中所有代码的 tab 尺寸为 8)。如果存在行尾注释,则 tab 尺寸更加是必须设定为与作者相同,这就意味着你看不同的代码需要经常修改 tab 尺寸。我看过许多代码,其使用的 tab 尺寸有从 2,3,4,5,6,8,16 甚至 32 的,如果你使用的 tab 尺寸与作者不同,外观将很不理想。

    2. 靠谱的IDE都能解决前进后退增加减少缩进的问题,即便是四个空格,一个退格键也能全退了,所以在使用的方便性方面根本不存在问题。——如果抱怨删除调整还不能有效解决的,你需要研究一下你的编辑器了。实际上增加减少缩进在主流编辑器中都直接有快捷键,无论是 tab 还是空格还是退格都很少直接被用于缩进。

    3. tab 是制表符而不是缩进符,正如在 html 页面中大量使用<table>进行布局是个不好的编程习惯一样,在编程中大量使用制表符布局通常也不是个好习惯。

     

    一般情况下,团队开发都要制定一套编码规范, 在大部分团队中,使用4个空格代替Tab是大家默认的。所以非常建议大家使用空格代替Tab, 另外各个IDE(编辑器)都提供了tab自动转换空格的功能,只要大家设置一下,按下tab键就可以出现4个或者多个空格。

     

     

    更多相关内容
  • 代码缩进对齐用空格还是制表符? 这是一个一直都存在争议的问题,C、C++语言没有要求。 而python作为一门新兴语言,它规定了必须保持一致的缩进,不能混用空格和制表进行缩进。

    代码缩进对齐用空格还是制表符?
    这是一个一直都存在争议的问题,C、C++语言没有要求。
    而python作为一门新兴语言,它规定了必须保持一致的缩进,不能混用空格和制表进行缩进。


    我的看法

    首先:空格和制表符的特点
    空格是可显示的空白字符,固定占用1个字符的宽度。
    制表符是控制字符,占用的宽度与编辑器的设置相关,占用宽度不固定。

    为什么有的程序员很歧视制表符,就是因为用制表符做代码对齐的时候,在不同的编辑器下面会得到不同的对齐效果。

    比如下面的代码:
    使用制表符,制表宽度为4的时候代码是对齐的。

     但是如果编辑器的制表宽度为8的时候,代码是不对齐了。

    其次:代码缩进和对齐是两个不同的概念
            缩进: 针对行首,向右缩进,让代码有层次感;
            对齐: 行首以外的地方,让代码纵向对齐;

    python要求代码必须缩进,但是并没有要求一定要对齐。
    python没有花括号,只能用缩进的方式来判断代码层次。
    缩进如果用空格,其建议值是4个空格,或者直接采用制表符缩进。

    void main(int argc, char **argv)
    { /* 缩进:花括号顶格,下面的代码缩进1级 */
        int   a;
        short ab;
        char  abc; /* 对齐:变量名左对齐 */
        for(a = 0; a < 100; a++)
        {   /* 缩进:花括号下面的代码缩进2级 */
            ab  = a + 10; /* 对齐:操作符中间对齐 */
            abc = a * 10;
        }
    }
    

    结论:到底用空格还是制表符?

    这个问题,缩进和对齐我们要分开来讨论
    对于代码缩进,我推荐用制表符。
    对于代码对齐,我推荐用空格。

    代码对齐不能用制表符,而必须使用空格,
    因为不同的编辑器制表符宽度可能不一样,不能保证代码严格对齐,而空格没有这个问题。


    原因:
    1.制表符输入方便,空格需要多敲几次,有可能出现空格数量不是4的倍数的情况; 

    有人会说,现在的编辑器,都可以自动把TAB键变为4个空格啊?
    是的,输入TAB变4个空格没毛病,但是回退就不行啊。
    对于制表符缩进,只要按一次回退就可以,而空格方式要按4次回退键!

    我见过一段代码被多人频繁修改后,采用4个空格缩进,在第2层for循环时,本来应该是缩进12个空格,但最后变成了11个空格。

    2.修改编辑器设置可以实现不同缩进宽度的视觉效果;
    3.制表符生成的源码文件要比空格体积小,因为制表符只占1个字节,而4个空格占4个字节;

    源码文件变小了,理论上还可以略微提高编译速度;

    展开全文
  • vscode如何设置代码缩进2空格

    千次阅读 2019-12-03 10:12:09
    话不多说,看解决办法: 首先点击菜单栏中的 文件 -> 首选项 -> 设置 或 左下角齿轮状管理图标 -> 设置 然后搜索 tabsize 如下图, Detect Indentation 勾选去掉,Tab Size 改为2就可以了! ...

    话不多说,看解决办法:
    首先点击菜单栏中的 文件 -> 首选项 -> 设置 或 左下角齿轮状管理图标 -> 设置
    然后搜索 tabsize 如下图, Detect Indentation 勾选去掉,Tab Size 改为2就可以了!
    在这里插入图片描述

    展开全文
  • Python是一门用空格缩进来区分代码层次的语言,其实Python并没有强制要求你用Tab缩进或者用空格缩进,甚至空格按几个都没有强制要求(但在PEP8中建议了使用4空格作为缩进:...绝对不能混用Tab和空格混用Tab和空格是指...

    5d73229b8af2f749.jpg

    Python是一门用空格缩进来区分代码层次的语言,其实Python并没有强制要求你用Tab缩进或者用空格缩进,甚至空格按几个都没有强制要求(但在PEP8中建议了使用4个空格作为缩进:https://www.python.org/dev/peps/pep-0008/)

    但是却绝对!绝对不能混用Tab和空格

    混用Tab和空格是指相邻的两句的缩进需要统一使用tab或统一使用空格,不能混用。

    ·python中不提倡使用tab缩进。

    不同编辑器对于TAB的解释是不同的,有的编辑器tab是4个字符宽,有的8个字符宽。

    如果有的地方用TAB,有的地方用空格,在不同的地方,原本对齐的代码就可能会不对齐。

    ·空格永远都是一样的。

    对于一些细致排版缩进来说(比如说想把每一行的注释都对齐),用空格也更加精确。

    有时候IDE会自动帮你将Tab键展开为为空格,对于普通编辑器来说,一般都不会这样做。但可以通过设置编辑器将Tab和空格转换。

    1、Vim

    在使用前配置好.vimrc

    https://www.jianshu.com/p/7d27858b8d2b

    http://dikar.iteye.com/blog/308934

    2、Python官方编辑器1. 全选整个代码(edit——select All)

    2. 统一间隔符号为tab(format——tabify region),或者统一间隔符号为空格(format——untabify region)

    Notepad++

    1567826007671513.png

    展开全文
  • python中缩进应该使用空格还是tab发布时间:2020-11-20 12:48:04来源:亿速云阅读:70作者:小新这篇文章主要介绍python中缩进应该使用空格还是tab,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定...
  • 很苦恼python这个东西是严格缩进的,但是我在linux下用vim下的py,默认tab是8个空格那么长(其实还是一个tab,用set tabstop=4只是把缩进量给改了,还是一个tab,拿到win下依然不正常。:set softtabstop=4也是照旧,...
  • WebStorm下将vue的代码缩进2空格改为4空格

    万次阅读 多人点赞 2018-02-01 14:59:46
    最近刚接触vue,发现按tab缩进代码缩进一直是2格而不是4格,检查了一下WebStorm的配置: File > Settings > Editor > Code Style > JavaScript的设置,发现Indent的键值为4: 这样配置是没有错的,于是找了下...
  • 对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单。在不同的编辑器里tab的长度...这也就是说,当我们按下一个Tab的时候,即使它看起来就是8个空格(或者4空格,不同的环境下,Tab可能显示的效果不同...
  • 我的观点关于代码缩进,先说下我的偏好,我喜欢 tab,原因有以下两点:风格灵活多变。缩进距离可依个人喜爱随意更改,你用 2 格缩进也好,4 格也罢,甚至是 8 格也行。这都仅会影响使用者自己的编辑器显示效果,而...
  • vscode 设置代码格式化缩进4空格

    万次阅读 多人点赞 2019-12-02 00:15:39
    1.在设置中搜索“tabsize” ,将下图中两个地方都改为4 搜索:"detectindentation",将前面的勾选去了 2. 选择要格式化的文件,右键选中“格式化文档” 格式化之前: 格式化后重新打开文件后: ...
  • 缩进Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块。...之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格缩进...
  • git config --global core.pager ‘less -x1,5’ 显示2空格字符宽度 git config --global core.pager ‘less’ 默认一个tab字符 显示4空格字符宽度 git log git show commitId
  • 编码缩进是使用Tab还是空格

    千次阅读 2018-08-28 14:41:47
    在编程中,代码缩进是十分重要的,不仅能够保持外观上的整洁和... Tab键和空格均可实现代码缩进,很多人也都在使用这两种方式,也有这样的疑问:这两种方式有什么区别?哪一种方式实现代码缩进更好一些? Tab键和...
  • 之前按照网上的其他解决办法都试了一下不太好使… 偶然间打开了设置看到了这个选项,把这个选项选中就好使了,可以试一下
  • Webstorm / IDEA 如何调整代码缩进空格

    千次阅读 2020-02-24 19:10:57
    调整Tab size 和 Indent 为2即可
  • Eclipse中设置代码缩进空格缩进

    万次阅读 2015-10-01 23:13:45
    Google Java编程规范中建议块缩进为2空格,我平时喜欢用Eclipse进行Java编程,而Eclipse默认是用Tab来进行块缩进的,本文给出的方法可以更改Eclipse中代码缩进的设置
  • 为遵循ESLint语法规范 ,WebStorm 可以调整Tab缩进为2空格 步骤一 修改这三处的值为:2 步骤二 把这两处默认的勾选去掉,不让其detection当前文件的Tab缩进 ...以后需要改哪个类型的文件的代码缩进我们
  • eclipse修改代码缩进2空格

    千次阅读 2019-03-07 15:13:42
    目的: 代码缩进 代码缩进统一使用 2空格,而不是 tab,这样在不同的编译器打开,就不会出现 错乱。 直接上图。。。
  • 编程时,到时是使用Tab按键来进行首行缩进好呢还是空格按键好呢???少侠,别急,带老夫给你慢慢分析。Tab 占用更少的空间使用 Tab 的文件或许和不使用 Tab 的在 gzip 压缩后并没有明显的区别。但是不使用 Tab 的...
  • sublime Text设置空格缩进 tab键缩进4空格
  • 在全局vim配置文件中(/etc/vimrc)或个人vim配置文件中($HOME/vimrc)加入如下代码即可将自动缩进改为4空格:autocmd FileType python setlocal et sta sw=4 sts=4其中相关变量含义:变量名 缩写 含义(no)...
  • 遇到了一个非常让人头疼的问题:不管我在设置中和settings.json中怎么改以下两个地方,都不能解决保存自动格式化时只缩进四个空格的问题。 "editor.formatOnSave": true, "editor.formatOnType": true, 问题...
  • vim缩进4空格

    2021-05-23 00:09:12
    修改vim配置文件vim /etc/vimrc 添加如下代码 set ts=4 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent 保存即可 需要粘贴时,输入命令set paste,:set nopaste
  • vscode设置缩进2空格

    2022-03-09 17:13:17
    看图就完事了
  • 这使得几乎不可能有不一致的缩进(我见过通常有4空格缩进代码,但是有些部分恰好有一个空格,很难通过简单的检查判断是否有7或8个空格。。。这在tabs中是不会发生的,除非您将tabstop设置为1个空格)。Tab是缩进...
  • STM32CubeMx生成的代码默认是2字节缩进,而大多数人更喜欢的是4字节制表符缩进。那么如何方便的将其生成的代码4字节制表符缩进呢? 利用VSCode可以轻松实现这一需求。 以下图为例,在CubeMx生成的代码中编写几行...
  • 默认情况下sublime是使用tab进行自动缩进,如何设置按tab键自动转化为4空格?编辑器根据上下文自动缩进时也是应用四个空格呢?按照文中操作即可,这样一劳永逸。
  • python对代码缩进要求十分严格,有时候在 gedit 中代码缩进看起来是一样的,运行时候会报 IndentationError: unexpected indent 的错误,这是tab缩进和空格缩进混用的原因。在 IDE 中打开就可以看到,line 81和line ...
  • vscode 设置代码格式化缩进4空格 在设置中搜索“tabsize” ,将下图中两个地方都改为4 搜索:“detectindentation”,将前面的勾选去了 选择要格式化的文件,右键选中“格式化文档”

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,444
精华内容 42,577
关键字:

代码缩进2空格还是4空格