代码缩进对齐用空格还是制表符?
这是一个一直都存在争议的问题,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个字节;

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

代码缩进对齐用空格还是制表符?相关推荐

  1. python默认的1个代码缩进量是几个空格_Python缩进规则(包括快捷键)

    1 和其它程序设计语言(如 Java.C 语言)采用大括号"{}"分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次.在 Python 中,对于类定义 ...

  2. python缩进tab还是空格_Python码农有话说:写代码时应该缩进使用 tab还是空格?...

    对于程序员来说,其实 Tab和 空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了. ...

  3. 为什么java缩进不能tab_为什么代码缩进时必须要用 Tab 而不能用空格

    今天这篇文章出自前端大牛 Lea Verou. 如果你在 Twitter 上关注了我或者你曾听过我的演讲,或许就知道我是极力鄙视用空格来进行代码缩进的.但是我从没在舞台上详细解释过我这个观点,而 Tw ...

  4. 为什么代码缩进时必须要用 Tab 而不能用空格

    Tab 占用更少的空间 使用 Tab 的文件或许和不使用 Tab 的在 gzip 压缩后并没有明显的区别.但是不使用 Tab 的话,就得多一道程序处理你的代码,以保证文件大小合理.你不得不依赖压缩工具 ...

  5. python默认的一个代码缩进是几个空格_python缩进长度是否统一

    Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...

  6. vim中设置python代码缩进为4个空格

    很苦恼python这个东西是严格缩进的,但是我在linux下用vim下的py,默认tab是8个空格那么长(其实还是一个tab,用set tabstop=4只是把缩进量给改了,还是一个tab,拿到win ...

  7. python控制代码块逻辑关系_Python 编程中用代码缩进表示逻辑递进关系,通常用几个空格_学小易找答案...

    [判断题]在自动化现场的跟踪过程中,钢板的数据定义可以定义为一个类(class),现场的每一块钢板称为一个实例. [多选题]下列Python语句正确的是 [判断题]四联球菌.八叠球菌.葡萄球菌均是多细 ...

  8. vscode代码一保存就缩进四个空格,解决vscode缩进四个空格问题

    遇到了一个非常让人头疼的问题:不管我在设置中和settings.json中怎么改以下两个地方,都不能解决保存自动格式化时只缩进四个空格的问题. "editor.formatOnSave&qu ...

  9. c语言程序如何首行缩进,什么叫代码缩进

    框住N行代码 按TAB键 这样代码有层次感 if (n>0) { //缩进写代码 xxxxxx } 什么是代码的缩进格式?是关于C语言.就是源程序的书写格式,看上去可以更清楚.比如 if(a&g ...

最新文章

  1. java-在应用中获取spring定义的bean
  2. Git Gui的使用
  3. 知物由学 | 干货!一文了解安卓APP逆向分析与保护机制
  4. 表示和描述-边界追踪
  5. css知识笔记(一)——基础知识、选择器、元素分类
  6. Pandas知识点-排序操作
  7. 华为公司参加2006 CCBN广电信息网络展览会
  8. Eclipse 导入项目到git@osc中
  9. Docker+SVN
  10. Hive 实用的第三方 UDF 收集
  11. ubuntu下载对应版本的linux内核源码
  12. 阿里云Linux安装软件镜像源
  13. PHP_CodeSniffer的下载和使用
  14. 证明最小码距与纠检错图像_详解差错控制之码距、检错与纠错
  15. 海贼王 动漫 全集目录 分章节 精彩打斗剧集
  16. aix系统挂载nas
  17. 武大2018计算机排名,厉害了大武汉!2018年有5所高校上榜世界大学500强,华科排名超武大...
  18. elasticsearch8.2集群部署
  19. 谷歌将于2023年在日本开设其首个数据中心
  20. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸

热门文章

  1. 电信RG100E-AA路由猫刷TT固件及一号多拨带ITV设置笔记
  2. 数据库事务特征、数据库隔离级别,各级别数据库加锁情况(含实操)--read committed MVCC...
  3. 成都年末最具干货的技术沙龙,小游戏小程序一网打尽!
  4. C++中多态中的父类虚析构或者纯虚析构的作用
  5. Web安全之充分利用 X-Content-Type-Options
  6. 随身wifi刷机折腾记
  7. 自然语言处理实战-基于LSTM的藏头诗和古诗自动生成
  8. 【学习笔记】上下界网络流
  9. 计算机组成原理R寄存器组,计算机组成原理实验的探讨论文(2)
  10. C++Builder Tchart与TDBchart