对于程序员来说,其实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')

learn python = 'QQ group:725479218'

看起来这个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个或者多个空格。

内容扩展:

Python_Tab键的使用

1. 在shell中输入表达式时,只要按下Tab键,当前命名空间中任何与已输入的字符串相匹配的变量(对象,函数等)就会被找出来:

In[1]: an_orange = 27

In[2]: an_pear = 15

In[3]: an(按)

anorange an_pear and any

2.在任何对象后面输入一个句点以便自动完成方法和属性的输入:

In[1]: a = [1,2,3]

In[2]: a.

a.append a.extend a.remove a.sort

a.count a.index a.pop a.reserve

3.应用在模块上:

In[1]: import pandas

In[2]: pandas.

pandas.cut pandas.core pandas.concat

4.当输入任何看上去像是文件路径的东西时(即使是在一个Python字符串中),按下Tab键即可找出电脑文件系统中与之匹配的东西。

5.Tab键自动完成功能可用于函数关键字参数。

到此这篇关于python中tab键是什么意思的文章就介绍到这了,更多相关python中的tab键表示什么意思内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: python中tab键是什么意思

本文地址: http://www.cppcns.com/jiaoben/python/321120.html

python tab键_python中tab键是什么意思相关推荐

  1. python中tab键_python中tab键是什么意思

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

  2. python公共键_Python利用公共键如何对字典列表进行排序详解

    前言 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排序和 ...

  3. python字典改键_python修改字典键(key)的方法

    python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现. 新建空白字典. info = {} 给字典添加键-值对. info["x& ...

  4. python字典改键_python 字典修改键(key)的几种方法

    python 字典修改键(key)的几种方法 python中获取字典的key列表和value列表 # -*- coding: utf-8 -*- # 定义一个字典 dic = {'剧情': 11, ' ...

  5. python正则表达式空格_python中的正则表达式的使用

    一.正则表达式简介 正则表达式:又称正规表示式.正规表示法.正规表达式.规则表示式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或者是RE),是计算 ...

  6. python list常用方法_Python中列表(List)的基本用法

    一.列表的创建 list((3, 5, 7, 9, 11)) list(range(1, 10, 2)) """ 字符串.集合.字典的键.字典的键:值对转列表 " ...

  7. python 元组遍历_Python中的for循环:元组、列表、字典的遍历和相互转化

    Python for循环可以遍历任何序列的项目,如列表.字符串.元组.字典.集合等序列类型. 语法: for循环的语法格式如下: for iterating_var in sequence:state ...

  8. 和python高级知识_Python中的5个高阶概念属性的知识点!你要了解明白哦!

    在现代编程世界中,面向对象编程(OOP)语言在改变软件开发中的设计和实现模式方面发挥了进化作用.作为OOP家族的重要成员,Python在过去10年左右逐渐流行起来.与其他OOP语言一样,Python围 ...

  9. python按回车_python中回车键

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 当input输入内容的时候,许多情况下输入回车键另起一行输入,但是这时候pych ...

最新文章

  1. 2021邹城高考成绩查询,@邹城考生 2021高考时间、考场分布图来啦!
  2. 【Hello CC.NET】巧用模板简化配置
  3. 转载:浏览器开发系列第一篇:如何获取最新chromium源码
  4. java高端架构_Java高端架构师
  5. 简述对linux系统的认识,对Linux的认识
  6. FFMPEG增加和提取字幕流
  7. 耳机煲机软件测试自学,耳机煲机工具Test Tone Generator蹂躏新耳机教程
  8. 最新YYCMS影视源码_比米酷好用_模板超好看
  9. 压力测试流程及测试步骤
  10. 如何判断车与路边线距离_靠边停车如何判断车轮与马路牙子的距离?一个办法真的很简单...
  11. P3239 [HNOI2015]亚瑟王
  12. 写了一个微信发红包的代码
  13. 修己,以清心为要。涉世,以慎言为先。
  14. 许多知名公司宕机现象频繁发生
  15. bilibili外链链接到网页
  16. 网络安全学习(渗透测试方法论,web架构安全分析,信息收集)
  17. python获取数组中最多的元素(用max函数)
  18. AE学习笔记之地图符号化
  19. 波音737事故,软件化要不要“背锅”?
  20. TPshop项目-功能测试(2)

热门文章

  1. 四种形态图解_图解缺口理论,附实例
  2. 2019年度工作回顾——管理方向转型
  3. 笔记本电脑连接不上wifi怎么办?看下面4种方法
  4. 三维空间曲线参数方程曲率半径公式
  5. 大数据之flink共享资源槽
  6. 百度地图开发参数设置正确,却定位到大西洋海域去了,定位失败解决方案
  7. 美国福禄克2021年1月重磅发布两款红外热像仪——TiS55+和TiS75+
  8. JVM虚拟机之调优命令
  9. 1588分析和实现总纲
  10. 英语口语——情景话题类词汇汇总