解决python的空格和tab混淆而报错的问题


Posted in Python onFebruary 26, 2021

在python里头,空格和tab是区分开的,二者混在一起就会报错,要么只用空格,要么只用tab

如果你用的是python的官方编译器,通过以下方法可以直接将整个页面的间隔符号统一:

1. 全选整个代码(edit——select All)

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

补充:python 中缩进—— tab 还是空格是不一样的,一般不能混用,除非设置Tab自动替换成空格

如下所示:

实验代码:if 10>4: print(“hello”) print(“hello”) print(“hello”) 实验一 实验二 实验三 实验四 实验五
操作 每一行都用1个 tab 键缩进 第一行用1个 tab,第二行用 2个 tab, 第三行用1个 tab 用空格键缩进,每一行都用1个空格。 第一行用1个空格,第二行用1个空格,第三行用2个空格 混合用tab和空格:第一行用1个tab(编辑器中设置一个tab的宽度是4个空格),第二行用1个tab,第三行用4个空格。
结果 没有报错 IndentationError: unexpected indent 没有报错 IndentationError: unexpected indent IndentationError: unindent does not match any outer indentation level
分析 我们看一下代码的 ASCII,以确定用的确实是 tab 看一下 ASCII 码,确定确实用了不同个数的 tab 看一下 ASCII 码,确定我们用的是空格(ASCII 值是 0x20) 用空格缩进是可以的,但是要保证每行用同样个数的空格 。 看一下 ASCII 码,就知道空格和 tab 混用了。空格和tab不能混用

实验6

混合用tab和空格:每一行都用4个空格 + 一个tab

哦,我想起来了,贴 ASCII 码实在是麻烦,编辑器有一个显示空格和制表符的功能。咱们显示出来后贴个代码截图图。

运行结果

hello

hello

hello

虽然可以成功运行,但这样做就是“作”。

实验结论

做了这么多实验,终于可以得出结论了:

Python中缩进可以用空格,也可以用tab,甚至可以混用(比如每一行你先用1个tab,再用4个空格,再用2个tab,再用4个空格);

不管你怎么缩进的,你都要保证,第二行和第一行用的字符一样,第三行和第二行用的字符一样,…… ,也就是每一行用的字符一样。

最佳实践

其实 Python 并没有强制要求你用Tab缩进或者用空格缩进,但在 PEP8中,建议使用4个空格来缩进。

Python Enhancement Proposals index 8 —— Style Guide for Python Code

https://www.python.org/dev/peps/pep-0008/

Use 4 spaces per indentation level.

notepad++ Tab自动转换成4个空格

对于 VIM,可以这样设置

set tabstop=4 "设置Tab显示的宽度为4个空格

set expandtab "设置将Tab自动展开成为空格

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
Python正则表达式教程之二:捕获篇
Mar 02 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python设计模式之中介模式简单示例
Jan 09 Python
面向初学者的Python编辑器Mu
Oct 08 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
python绘制雪景图
Dec 16 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
在keras中实现查看其训练loss值
Jun 16 Python
解决pip install psycopg2出错问题
Jul 09 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
python链表类中获取元素实例方法
Feb 23 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 #Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 #Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 #Python
Python xlwings插入Excel图片的实现方法
Feb 26 #Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 #Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 #Python
详解python的xlwings库读写excel操作总结
Feb 26 #Python
You might like
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php采集速度探究总结(原创)
2008/04/18 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
php session的应用详细介绍
2017/03/22 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python中Apriori算法实现讲解
2017/12/10 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
python使用udp实现聊天器功能
2018/12/10 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
承诺书格式范文
2014/06/03 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
神龙架导游词
2015/02/11 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
如何用Python搭建gRPC服务
2021/06/30 Python
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL
Android中的Launch Mode详情
2022/06/05 Java/Android