代码缩进对齐用空格还是制表符?
代码缩进对齐用空格还是制表符?
这是一个一直都存在争议的问题,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个字节;
源码文件变小了,理论上还可以略微提高编译速度;
代码缩进对齐用空格还是制表符?相关推荐
- python默认的1个代码缩进量是几个空格_Python缩进规则(包括快捷键)
1 和其它程序设计语言(如 Java.C 语言)采用大括号"{}"分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次.在 Python 中,对于类定义 ...
- python缩进tab还是空格_Python码农有话说:写代码时应该缩进使用 tab还是空格?...
对于程序员来说,其实 Tab和 空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了. ...
- 为什么java缩进不能tab_为什么代码缩进时必须要用 Tab 而不能用空格
今天这篇文章出自前端大牛 Lea Verou. 如果你在 Twitter 上关注了我或者你曾听过我的演讲,或许就知道我是极力鄙视用空格来进行代码缩进的.但是我从没在舞台上详细解释过我这个观点,而 Tw ...
- 为什么代码缩进时必须要用 Tab 而不能用空格
Tab 占用更少的空间 使用 Tab 的文件或许和不使用 Tab 的在 gzip 压缩后并没有明显的区别.但是不使用 Tab 的话,就得多一道程序处理你的代码,以保证文件大小合理.你不得不依赖压缩工具 ...
- python默认的一个代码缩进是几个空格_python缩进长度是否统一
Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...
- vim中设置python代码缩进为4个空格
很苦恼python这个东西是严格缩进的,但是我在linux下用vim下的py,默认tab是8个空格那么长(其实还是一个tab,用set tabstop=4只是把缩进量给改了,还是一个tab,拿到win ...
- python控制代码块逻辑关系_Python 编程中用代码缩进表示逻辑递进关系,通常用几个空格_学小易找答案...
[判断题]在自动化现场的跟踪过程中,钢板的数据定义可以定义为一个类(class),现场的每一块钢板称为一个实例. [多选题]下列Python语句正确的是 [判断题]四联球菌.八叠球菌.葡萄球菌均是多细 ...
- vscode代码一保存就缩进四个空格,解决vscode缩进四个空格问题
遇到了一个非常让人头疼的问题:不管我在设置中和settings.json中怎么改以下两个地方,都不能解决保存自动格式化时只缩进四个空格的问题. "editor.formatOnSave&qu ...
- c语言程序如何首行缩进,什么叫代码缩进
框住N行代码 按TAB键 这样代码有层次感 if (n>0) { //缩进写代码 xxxxxx } 什么是代码的缩进格式?是关于C语言.就是源程序的书写格式,看上去可以更清楚.比如 if(a&g ...
最新文章
- java-在应用中获取spring定义的bean
- Git Gui的使用
- 知物由学 | 干货!一文了解安卓APP逆向分析与保护机制
- 表示和描述-边界追踪
- css知识笔记(一)——基础知识、选择器、元素分类
- Pandas知识点-排序操作
- 华为公司参加2006 CCBN广电信息网络展览会
- Eclipse 导入项目到git@osc中
- Docker+SVN
- Hive 实用的第三方 UDF 收集
- ubuntu下载对应版本的linux内核源码
- 阿里云Linux安装软件镜像源
- PHP_CodeSniffer的下载和使用
- 证明最小码距与纠检错图像_详解差错控制之码距、检错与纠错
- 海贼王 动漫 全集目录 分章节 精彩打斗剧集
- aix系统挂载nas
- 武大2018计算机排名,厉害了大武汉!2018年有5所高校上榜世界大学500强,华科排名超武大...
- elasticsearch8.2集群部署
- 谷歌将于2023年在日本开设其首个数据中心
- 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸
热门文章
- 电信RG100E-AA路由猫刷TT固件及一号多拨带ITV设置笔记
- 数据库事务特征、数据库隔离级别,各级别数据库加锁情况(含实操)--read committed MVCC...
- 成都年末最具干货的技术沙龙,小游戏小程序一网打尽!
- C++中多态中的父类虚析构或者纯虚析构的作用
- Web安全之充分利用 X-Content-Type-Options
- 随身wifi刷机折腾记
- 自然语言处理实战-基于LSTM的藏头诗和古诗自动生成
- 【学习笔记】上下界网络流
- 计算机组成原理R寄存器组,计算机组成原理实验的探讨论文(2)
- C++Builder Tchart与TDBchart