解决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使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
Python循环语句之break与continue的用法
Oct 14 Python
Python实现购物程序思路及代码
Jul 24 Python
python+django加载静态网页模板解析
Dec 12 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
Python函数对象与闭包函数
Apr 13 Python
python 判断字符串当中是否包含字符(str.contain)
Jun 01 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
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
Python datetime 如何处理时区信息
2020/09/02 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
咖啡书吧创业计划书
2014/01/13 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
说明书范文
2014/05/07 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
企业口号大全
2014/06/12 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
诉讼授权委托书
2014/10/15 职场文书
紧急迫降观后感
2015/06/15 职场文书
2016情人节宣传语
2015/07/14 职场文书