解决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制作爬虫抓取美女图
Jan 20 Python
python笔记:mysql、redis操作方法
Jun 28 Python
python技能之数据导出excel的实例代码
Aug 11 Python
单链表反转python实现代码示例
Feb 08 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
python 识别图片中的文字信息方法
May 10 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
Python list去重且保持原顺序不变的方法
Apr 03 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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中用正则表达式清除字符串的空白
2011/01/17 PHP
fgetcvs在linux的问题
2012/01/15 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
vue组件父子间通信详解(三)
2017/11/07 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python实现的栈(Stack)
2018/01/26 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python中有几个关键字
2020/06/04 Python
Python持续监听文件变化代码实例
2020/07/22 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
介绍一下Python下range()函数的用法
2013/11/07 面试题
优秀管理者获奖感言
2014/02/17 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
先进单位事迹材料
2014/12/25 职场文书
秋收起义观后感
2015/06/11 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
python编写函数注意事项总结
2021/03/29 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS