在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

Use 4 spaces per indentation level.

notepad++ Tab自动转换成4个空格

对于 VIM,可以这样设置

set tabstop=4 "设置Tab显示的宽度为4个空格

set expandtab "设置将Tab自动展开成为空格

以上为个人经验,希望能给大家一个参考,也希望大家多多支持站圈网。如有错误或未考虑完全的地方,望不吝赐教。

python 第一行 报错_解决python的空格和tab混淆而报错的问题相关推荐

  1. python第一行左对齐_关于Python的第一行语句

    通常在脚本语言的第一行会看到#!/usr/bin/env python 与 #!/usr/bin/python其中之一,这两句话的目的都是指出你的python文件用什么可执行程序去运行它. #!/us ...

  2. python输出到文件乱码_解决python解析文件时输出乱码

    首先获取到json模块,encoding指定文件编码utf-8,errors报错时忽略错误,print()输出结果看看是否有问题. # -*- coding: utf-8 -*- import jso ...

  3. 安装fitz报错_解决python 虚拟环境删除包无法加载的问题

    项目开发一直在docker的虚拟环境上,遇到了一个问题,就是把虚拟环境的包删掉(rm -rf xxx)之后,再重新拷贝一个(跟原来包一模一样的文件夹)进去发现pycharm再也找不到这个包了,后来在同 ...

  4. python elif报错_解决python循环的elif报错的方法

    解决python循环的elif报错的方法 发布时间:2020-08-05 15:36:51 来源:亿速云 阅读:96 作者:小新 解决python循环的elif报错的方法?这个问题可能是我们日常学习或 ...

  5. python权限不够无法写入_解决python使用pip安装模块的权限问题

    ubuntu16.04下默认的python和pip 1.ubuntu16.04默认安装了两个版本的python,python2.7和python3.5,可以使用python -V查看版本 命令行中py ...

  6. python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...

    1. 错误描述 之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自 ...

  7. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  8. python打包包含所有依赖_解决Python开发过程中依赖库打包问题的方法

    在Python开发的过程中,经常会遇到各种各样的小问题,比如在一台计算机上调试好的程序,迁移到另外一台机子上后往往会应为工程项目依赖库的缺失而造成错误. 除了一遍又一遍对着被抛出错误去重新instal ...

  9. 关于python格式对齐的问题_解决python对齐错误的方法

    运行的时候,有时候会出现语法错误:IndentationError: unexpected indent 可以用如下方法解决: 首先把空格显示出来,空格的地方 ,由点代替 修改把tab 代表4个位置 ...

  10. python中config(state=disabled)_解决python flask中config配置管理的问题

    在项目中我们需要配置各种环境.如果我们的配置项很少的话,可以直接简单粗暴的来: 比如: app =Flask(__name__) app.config['DEBUG']=True app.config ...

最新文章

  1. android修改视频聊天帧率,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮(4)...
  2. swaggerui api.docs
  3. 在用户控件中弹出消息框的方法
  4. 向服务器请求数据的五种技术
  5. 深度学习和浅层学习 Deep Learning and Shallow Learning
  6. Linux字符串三剑客笔试题集合
  7. 无线网的组建与应用习题参考答案
  8. jdk 取整数_JDK 15中的确切绝对整数
  9. c#异常处理_C#异常处理能力问题和解答 套装2
  10. python pop函数 索引_[python] 字典和列表中的pop()函数
  11. 在VB6中保存单色(1Bit)位图(VB6代码)
  12. java 生成txt日志方法,java定向输出程序日志(输出到txt文件中)
  13. 常见花材的固定的方法有哪些_波峰焊喷嘴的常见故障及处理方法有哪些
  14. 张亚勤:终日“闭关”读论文,思考终极算法
  15. c语言A 100 开头地址,C语言库函数_-_A开头
  16. e2200网卡linux,Debian
  17. kali linux安装谷歌拼音输入法(亲测可用)
  18. 纸壳cms支持php坏境吗,纸壳CMS|免费开源可视化建站系统
  19. 千兆路由器怎么设置网速最快_千兆路由器体验:速度简直太快了
  20. vue在新的标签页打开pdf文件

热门文章

  1. 关于按钮背景透明 + div拖拽
  2. 无聊的时候去火箭队官网调戏客服
  3. 全球五百强IT名企智力题精选
  4. lvds传输距离标准_电平标准整理
  5. pythonsqlite3模糊_让 Python 更加充分的使用 Sqlite3
  6. java统计空格代码_java统计文件中字符,数字,汉字,空格数目
  7. javaio_java------io基础(一)
  8. LintCode—两数组的交(547)
  9. 关于sqlite多线程
  10. Oracle中删除重复记录