Python从入门到高手3.4节-Python代码缩进规则

目录

3.4.1 IndentationError

3.4.2 什么是代码缩进

3.4.3 代码缩进规则

3.4.4 代码缩进的意义

3.4.5 超一流程序员


3.4.1 IndentationError

初学者在一开学Python时,稍不注意就会引发一个IndentationError。例如以下所示的几行代码:

state = 0
if state == 0:
  """
  如果变量state引用的对象值为0,
  就执行print("开心")
  """ 
    print("开心")
else:
    
  """
  否则执行print("开心")
  """ 
  print("不开心")

请同学们将以上几行Python代码写入Python文件中,然后在PyCharm中运行该脚本程序。

同学们可以复习2.1节中的内容来学习如何在PyCharm中运行Python程序: Python从入门到高手2.1节-神器PyCharm的安装与配置-CSDN博客

运行该脚本程序以后,在PyCharm的输出窗口中会看到如下所示的错误信息:

从输出的错误信息中可知,在文件中的第8行出现了IndentationError。用PyCharm打开源代码文件后,IDE会在引发异常的代码起始位置处标出红色的波浪线:

IndentationError在Python中被称为代码缩进错误,如果不遵循Python的代码缩进规则来编写程序,那么程序在执行过程中就会抛出IndentationError。

IndentationError是Python内置的异常类型,表示缩进错误。

异常(Exception)是Python内置的错误处理机制,Python解释器在解释执行Python程序时,一旦出现错误,就会抛出异常。在出现异常时,同学们要善于分析错误信息,以从错误信息中找到解决问题的关键。

3.4.2 什么是代码缩进

编程语言中的代码缩进指的是调整代码与父级边缘的距离,这个距离用空格数来进行度量。例如缩进四个空格,指的是与父级边缘水平相距四个空格。例如下面包含缩进的代码:

# 与父级边缘相距0个空格
number=1
if number > 0:
    # 与父级边缘水平相距四个空格
    # print函数与上文的if语句是子级和父级的关系
    print(number)

3.4.3 代码缩进规则

由于Python对代码采取了强制性的缩进,所以同学们在编写Python程序时务必按其缩进规则来编写代码,否则程序在运行时会报错,抛出IndentationError的错误异常。以下是薯条老师总结的,Python中的四点代码缩进规则:

(1) 全局代码不需要缩进,必须顶格

(2) 同层次的语句须包含相同缩进的空格数

(3) 子级层次的语句与父级层次的语句必须有缩进

(4) 单行注释可以随意缩进,多行注释与同层次的代码保持相同的缩进

现在通过一则实例来讲解Python中的代码缩进规则:

# state是一个全局变量,与首行没有缩进,必须顶格
state = 0

# if语句块的首行没有缩进,必须顶格
if state == 0:
  """
  (1)冒号下方的代码属于子级层次,必须有缩进
  (2)多行注释与同层次的代码保持相同的缩进
  """   
  print("开心")
    
# else语句块的首行没有缩进,必须顶格
else:
  # 冒号下方的代码属于子级层次,必须有缩进
  # 与父级else语句所在的边缘水平相距四个空格
  print("不开心")
    
  # 与上面的print处于同一层级,必须包含相同缩进的空格数
  print("unhappy")

同学们需注意,单行注释虽可以随意缩进,但在实际开发中,通常与多行注释一样,与同层次的代码保持相同的缩进。

键盘中的Tab键输出的是空白字符,它在计算机系统中的编码与空格的编码是不一样的,在一些IDE或编辑器中,它们自动将Tab键的输出转化为了4个或8个空格,同学们在使用集成开发环境时可能需要进行额外配置,否则会带来移植上的问题。最佳的做法是在需要代码缩进的地方仅使用空格键来输出空格,这样就不会有差错。

3.4.4 代码缩进的意义

通过代码缩进可以区分源代码的逻辑层次,例如以下的代码:

# 与父级边缘相距0个空格
number=1
if number > 0:
    # 与父级边缘相距四个空格
    # print函数与上文的if语句是子级和父级的关系
    print(number)

从源代码的书写形式上可以立即看出冒号下方的为子级代码块。通过代码缩进可以规范代码的书写格式,让源代码在整体上看起来更加整齐美观。没有缩进的代码:

# 与当前行的第一列相距0个空格
# 与父级边缘相距0个空格
number=1

if number > 0:
         # 与父级边缘相距四个空格
    # print函数与上文的if语句是子级和父级的关系
                         print(number)

强制缩进的代码:

# 与父级边缘相距0个空格
number=1
if number > 0:
    # 与父级边缘相距四个空格
    # print函数与上文的if语句是子级和父级的关系
    print(number)

3.4.5 超一流程序员

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客icon-default.png?t=O83Ahttp://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大神薯条老师

财务自由就差你10块钱了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值