Python的缩进

Python的代码块通过缩进来标记,违反缩进规则会导致IndentationError。Python中每个语句都有一个缩进级别,使用栈来存储。缩进不一致、空格和Tab混用是常见错误。解决方案包括检查缩进、空格与Tab的使用,以及使用Python IDE如IDLE或Pycharm辅助调试。

缩进是Python的灵魂

Python是一门独特的语言,它的代码块是通过缩进(Indentation)来标记的(大部分语言都是使用花括号作为代码块的标记),具有相同缩进的多行代码属于同一个代码块。
 如果代码莫名其妙的乱缩进,Python解释器就会报错,
 因此Pytho也被戏称“需要拿着游标卡尺学习的语言
 Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编程习惯。

并且Python语言利用缩进表示语句块的开始和退出,而非使用{}或者其他字符。
 
Python中的缩进(Indentation)决定了代码的作用域范围。
这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号花括号{}符决定作用域的范围;python使用缩进空格来表示作用域的范围,相同缩进行的代码是处于同一范围)。

Python中缩进Tab被替换为4个空格,所以可以使用4个空格进行缩进。
但是在实际编程中,最好不要使用空格键进行缩进(容易出错)。

在Python中使用缩进,需要注意几点:

1.不要随便使用Tab键进行缩进(不该缩进别缩进),不在使用空格的地方使用Tab键。 在不该使用缩进的地方使用缩进,就会出现错误。
  2.注意观察缩进程度,不同级别的代码缩进的程度不同
  3.不建议用空格进行缩进(一个缩进四个空格),缩进的量不对,少了一个空格,就会导致程序的错误。因此建议使用Tab进行缩进,使用空格可能会因为空格数目不对而出现不可预料的错误。
  4.不要弄混Tab和空格。一般,空格显示为小圆点,tTab显示为一条直线。

合理使用缩进,使得代码具有美感,有时过多的缩进,也会让人眼花缭乱。所以我们要合理使用缩进,写出高质量的代码。

Python中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存储。
在开始读取文件之前,
0(表示缩进级别为0,无缩进)会被首先压入栈中。
然后从文件开头到末尾,依次读取每行逻辑代码,
每行逻辑代码的缩进级别都会和栈顶值进行比较,
如果相等,那么什么都不会发生;
如果比栈顶值大的话,那么该行逻辑代码的缩进级别就会被压入栈中,
同时会生成一个缩进标记(INDENT TOKEN);
如果比栈顶值小的话,
那么栈中所有比该行逻辑代码缩进级别大的值都会从栈中移除,
并且还会生成一个扩展标记(DEDENT TOKEN)。

所以,虽然Python语法允许代码块随意缩进几个空格,但是位于同一个代码块中的所有语句必须保持相同的缩进。

出错类型

1.不应该使用空格或Tab缩进的地方使用了空格或Tab
2.不同级别的代码没有缩进
3.缩进量不对,同一代码缩进不统一
4.Tab和空格的混用-----这个问题最难看出来

报错信息:
IndentationError: unexpected indent;
IndentationError: expected an indented block。。。

如果遇到这类报错,
就可能是代码里tab和空格缩进的问题,
需要检查下tab和空格了”。

【解决办法】

1.检查是否不应该使用空格的地方使用了空格或Tab,检查是否有缩进,缩进量是否对,缩进和空格是否有混用
2.注释有时候也会影响,所以注释的缩进也应引起注意
3.尤其对于缩进和空格是否有混用,可以用文本编辑器Notepad++把当前python脚本的所有空格或Tab字符都显示出来查看。

设置见:
视图 -> 显示符号 -> 显示空格与制表符

确保代码内统一使用4或4的倍数个空格,或者统一使用Tab键或多个Tab键,如果运行不通过,可以使用Pycharm来运行,报错信息会很清楚的告诉你是哪一行不对。

Python自带IDLE缩进:
Python IDEL整体代码缩进

左缩进 Ctrl + [
右缩进 Ctrl + ]
加注释 Alt + 3
去注释 Alt + 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值