解决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语言的12个基础知识点小结
Jul 10 Python
分享Python文本生成二维码实例
Jan 06 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
深入学习python多线程与GIL
Aug 26 Python
python的slice notation的特殊用法详解
Dec 27 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
python画环形图的方法
Mar 25 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 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
TMDPHP 模板引擎使用教程
2012/03/13 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
编程语言JavaScript简介
2014/10/16 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python函数返回多个值的示例方法
2013/12/04 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
医校毕业生自我鉴定
2014/01/25 职场文书
小学教师国培感言
2014/02/08 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
作风转变年心得体会
2014/10/22 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
叶问观后感
2015/06/15 职场文书
行政处罚听证告知书
2015/07/01 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
利用Apache Common将java对象池化的问题
2022/06/16 Servers
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android