解决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实现生成简单的Makefile文件代码示例
Mar 10 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
实时获取Python的print输出流方法
Jan 07 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
Python 实现数组相减示例
Dec 27 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
解决django FileFIELD的编码问题
Mar 30 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 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
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python科学画图代码分享
2017/11/29 Python
Python内置模块turtle绘图详解
2017/12/09 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
python实现抖音视频批量下载
2018/06/20 Python
python requests post多层字典的方法
2018/12/27 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
关于Keras Dense层整理
2020/05/21 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
幼师专业毕业生自荐信
2013/09/29 职场文书
财务经理岗位职责
2013/11/09 职场文书
财务会计应届生求职信
2013/11/24 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
教师先进个人材料
2014/12/17 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL
使用Python开发冰球小游戏
2022/04/30 Python