解决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实现基于HTTP文件传输实例
Nov 08 Python
Python EOL while scanning string literal问题解决方法
Sep 18 Python
Python操作MongoDB详解及实例
May 18 Python
python3的print()函数的用法图文讲解
Jul 16 Python
Python学习笔记之For循环用法详解
Aug 14 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
python读取当前目录下的CSV文件数据
Mar 11 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 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
PHP 图像尺寸调整代码
2010/05/26 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python tkinter模版代码实例
2020/02/05 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
Python如何给函数库增加日志功能
2020/08/04 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
Ajax和javascript的区别
2013/07/20 面试题
平面设计岗位职责
2013/12/14 职场文书
法律进学校实施方案
2014/03/15 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
整改落实自查报告
2014/11/05 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers