Python码农有话说:写代码时应该缩进使用 tab还是空格?
off999 2024-10-25 13:49 82 浏览 0 评论
对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单。
在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。
大家都知道,Tab在ASCII码中,编码是9,而空格是32。这也就是说,当我们按下一个Tab的时候,即使它看起来就是8个空格(或者4个空格,不同的环境下,Tab可能显示的效果不同),对于电脑来说,却是完全不一样的东西。这也意味着,对于用字符来描述过程的代码来说,极有可能会是决定性的差异。
尤其是对于一门用空格缩进来区分代码层次的语言——Python。
我们来看一段代码。
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缩进或者用空格缩进,甚至空格按几个都没有强制要求,但是却绝对!绝对不能混用Tab和空格,那么这里,是不是空格和Tab的区别就显得很大了呢?
这个时候有的同学就要说了,我用PyCharm(或者其他IDE)怎么从来都没有出现这样的问题呢?
其实,很多IDE对Tab键做了各种各样的优化,其中有一条就是,将Tab键展开为为空格,也就是说,当你按下Tab的时候,IDE实际上帮你把一个「9」转换成了四个(或者八个)「32」。但是要注意,不是所有的IDE都帮你做了这样的工作!同理,对于好纯洁好不做作的编辑器Vim来说,肯定也不会帮你做这样的工作了。
既然Tab在不同的环境下展现不一样,而空格却永远都是一样的。对于一些细致排版缩进来说(比如说想把每一行的注释都对齐),用空格也更加精确。这样看起来,确实是用空格来写代码要好于用Tab呢。
空格代替Tab的好处:
空格在各种情况下代码都是你想要的样子。而 tab 仅仅当你与代码作者的 tab 尺寸设定为相同时,代码才好看。修改 tab 尺寸并不能解决这个问题,因为你很难做到每打开一个文件就修改一次 tab 尺寸,而每个人通常有不同的习惯(POSIX/Unix 标准的 tab 应当为 8 字符宽度,Linus 大神也规定 Linux 内核中所有代码的 tab 尺寸为 8)。如果存在行尾注释,则 tab 尺寸更加是必须设定为与作者相同,这就意味着你看不同的代码需要经常修改 tab 尺寸。我看过许多代码,其使用的 tab 尺寸有从 2,3,4,5,6,8,16 甚至 32 的,如果你使用的 tab 尺寸与作者不同,外观将很不理想。
靠谱的IDE都能解决前进后退增加减少缩进的问题,即便是四个空格,一个退格键也能全退了,所以在使用的方便性方面根本不存在问题。——如果抱怨删除调整还不能有效解决的,你需要研究一下你的编辑器了。实际上增加减少缩进在主流编辑器中都直接有快捷键,无论是 tab 还是空格还是退格都很少直接被用于缩进。
tab 是制表符而不是缩进符,正如在 html 页面中大量使用
进行布局是个不好的编程习惯一样,在编程中大量使用制表符布局通常也不是个好习惯。
一般情况下,团队开发都要制定一套编码规范, 在大部分团队中,使用4个空格代替Tab是大家默认的。所以非常建议大家使用空格代替Tab, 另外各个IDE(编辑器)都提供了tab自动转换空格的功能,只要大家设置一下,按下tab键就可以出现4个或者多个空格
大家怎么看呢?欢迎留言!
相关推荐
- 怎么制作winpeu盘启动盘(制作winpe启动盘有什么作用)
-
我们应先理解U盘启动盘:简单理解就是用U盘启动盘代替电脑以前的光驱,所以它只有3个最基本的功能:1、帮助电脑正常启动。比如电脑无限在启动界面循环;2、格式化硬盘。格式化硬盘所有分区,再重新分区;3、重...
- 磁力搜索引擎入口(磁力搜索器引擎)
-
01.磁力熊磁力熊,是一个内容丰富、功能最为强大的一个磁力搜索网站,通过它不仅仅可以搜索到大量纯净的1080P高分电影,像一些比较小众的影视剧这里也都能找到。02.夕阳小站夕阳小站,虽然网站整体界面设...
- 手机变成安全模式怎么解除(手机变成安全模式是怎么回事)
-
解除比较安全模式的方法主要有三种:1、按电源键长按机器会弹出重启菜单,将手机重启即可解除比较安全模式。2、查询手机操作手册,进入设置里找到“比较安全模式”,可以改变比较安全模式的状态,即可解除比较安全...
-
- win7官方最小精简版(最小win7精简版系统239m)
-
推荐win7系统精简版一、雨林木风系统v1906雨林雨林木风GhostWin7SP1旗舰版一如既往注重稳定与安全,本次6月版本更新优化注册表增强系统运行效率,不对系统关键文件进行修改保证稳定性,关闭系统可能会感染病毒的端口,更新最新...
-
2026-01-11 14:51 off999
- 华硕牌子电脑怎么样(华硕牌子电脑怎么样值得买吗)
-
1、华硕笔记本电脑在市场上有很高的认知度和认可度。除了在零售市场有出色口碑外,在特殊领域华硕笔记本一样有惊人的表现;2、华硕笔记本电脑的优点在于它的主板性能好还有就是它的散热效果也不错,性能比较稳定;...
- 两个文件夹内容自动同步(两个文件夹内容自动同步,删除不了)
-
D:盘中点右键,新建公文包B,将文件夹A拖到公文包B中。如果以后文件夹A中的文件修改了,打开公文包B,点菜单上的“公文包、全部更新”。则公文包B就会自动更新文件,与文件夹A中的保持一致。这种方法可以有...
- 无法删除的文件夹怎么删(无法删除文件夹或文件的原因有哪些)
-
删除不了的软件、文件或文件夹的解决方法:1、开机按F8不动,到高级选项出现在松开手,用上下键选安全模式,按照提示进入到安全模式中删除即可(安全模式与正常模式操作一样)。2、如果使用其他办法无法删...
- win7重装系统不用u盘(不用u盘新手重装系统win7)
-
可以通过以下步骤在不使用U盘的情况下重装Win7系统:首先需要备份您的电脑中的重要数据,以免在系统重装时丢失。进入系统的“控制面板”,找到“系统与安全”选项并单击进入。在“系统与安全”页面中,找到“备...
- 扣扣安全中心怎么修改密码(扣扣安全中心修改不了密码)
-
1、首先,打开QQ面板左下角的三个条形图标,然后在弹出选项的“安全”中单击“安全中心主页”。2、然后在打开的QQ安全中心页面中,单击头像下方的“修改密码”。3、然后将弹出一个提示来确认该QQ号码,并单...
- win10两台电脑怎么共享文件(win10两台电脑怎么共享文件夹)
-
在Windows10中,您可以使用以下步骤共享文件:1.在要共享的文件夹上单击右键,选择“属性”。2.选择“共享”选项卡,然后选择“高级共享”。3.在“高级共享”对话框中,选中“共享此文件...
- 电脑复制粘贴不了是怎么回事
-
电脑无法复制粘贴原因分析及解决方法:如果是中病毒的话,会有以下的这些情况:1、系统不能上网,例如宽带账号无法登录,qq登录不上,网页无法打开。2、复制粘贴功能失效。3、电脑任务栏上的信息不能显示。4、...
- win7一键烟雾头(win7烟雾头设置)
-
要调整Win7系统的烟雾头,首先需要打开“显示设置”窗口,在这个窗口中可以找到“分辨率”、“屏幕比例”等选项。接着,在“高级设置”中找到“显示适配器属性”选项,点击进入。在这个界面中,可以找到“3D设...
- win7系统一键装机下载(w7一键安装操作系统)
-
可以在温十系统电脑上下载温七装机系统,但需要按照正确的步骤进行安装。以下是一个可能的安装步骤:1.在温十系统电脑上下载温七装机系统的ISO文件,可以从互联网上下载,也可以从其他媒体(如DVD或USB驱...
- qq互联管理中心(qq互联管理中心是干什么的)
-
QQ互联是基于Discuz!云平台的一项服务,因此在开通QQ互联之前首先需要开通Discuz!云平台。在Discuz!X2中已经内置了云平台和相关服务,无需安装,在后台直接开启即可。可以呀,有...
- win10新加固态硬盘怎么设置(win10加装固态后需要设置什么吗)
-
安装固态硬盘后,您可以按照以下步骤设置Win10系统:1.连接固态硬盘:将固态硬盘插入主板上的SATA数据线接口,并使用电源线将其连接到电源供应器上。2.启动电脑:开机后,进入BIOS设置界面。通...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
