Python 中的缩进错误:原因、解决方法、好处

已发表: 2021-05-26

作为一种解释型、高级和通用的编程语言,Python 越来越多地被誉为编程世界中最有前途、最领先和新兴的平台。 如果没有其巧妙的设计理念,Python 什么都不是。

一个关键特征是强调显着使用显着缩进来增强代码可读性。 下面突出显示的插图将 Python 的设计理念的堡垒简要概述为二十句格言,由长期 Pythoneer 的 Tim Peters 提到,他最终成为 Python 最多产和最顽强的核心开发人员之一。

目录

Python 简介

在深入研究 Python 中缩进错误背后的具体技术之前,我们必须熟悉 Python 的基础知识和缩进的必要性。 这样做不仅可以帮助您更好地了解错误本身,还可以深入了解程序员通过有效选择解决错误而获得的优势。

Python 作为一种多范式编程语言的诞生可以追溯到 1991 年。从那时起,程序员不断调整 Python 的核心线框,以适应一系列用户特定的需求,例如数据科学以及 Web 和移动开发。

现在,我们都知道,试图理解难以辨认的笔迹是非常棘手的,而且常常令人愤怒。 同样,不可读和非结构化的代码是简单明了的,在编程世界中是不可接受的。 这就是 PEP 或 Python 增强提案的概念来拯救程序员的地方。 Python 社区的 PEP 类似于为普通大众共享的 Google Doc。

这是一个不断更新的描述性任务,它让 Python 编程社区全面了解功能和更新,以提高代码的可读性。 Guido van Rossum、Barry Warsaw 和 Nick Coghlan 在 2001 年将 PEP 8 称为 Python 的样式代码。

什么是缩进?

众所周知,Python 是一种过程语言,因此,Python 中的缩进用于将单个代码分隔为可识别的功能相似语句组。 大多数编程语言,包括 C、C++ 和 JAVA,都使用花括号“{}”来定义代码块。 Python 标志着这种设计的偏离,并且更喜欢使用缩进。

缩进的语法

根据 PEP 8 空白伦理概述的约定,每个新的迭代(即代码块)都应该以缩进开始,代码的结尾应该是第一行没有缩进的行。 执行缩进的常见做法是四个空格或一个制表符,其中区域在很大程度上优于制表符。

如前所述,行首的前导空格决定了行的缩进级别。 要对特定代码块的语句进行分组,您必须增加缩进级别。 同样,要关闭分组,您必须降低缩进级别。

结帐: 42 个令人兴奋的 Python 项目主题和想法

Python中缩进错误的原因

“缩进错误:需要缩进块”不区分用户。 无论您是 Python 编程的新手还是经验丰富的软件开发人员,这一定会在某个时间点发生。 在 Python 中,由于您键入的所有代码都是通过正确的空格排列的,因此如果在代码中的任何实例中,您的缩进不正确,则整个代码不会运行,并且解释器将返回错误函数。 要确切了解需要注意什么,下面列出了 Python 中缩进错误的一些常见原因:

1. 编码时同时使用制表符和空格。 可以说理论上,制表符和空格都有相同的用途,但让我们从解释器的角度考虑这一点。 如果空格和制表符的使用不一致且可互换使用,则会产生歧义。 这将导致解释器混淆使用哪种更改,并最终在 Python 中返回缩进错误。

2. 您无意中将缩进放置在错误的位置,或者代码行之间没有制表符或空格。 由于 Python 遵循严格的准则来安排编写的代码,因此在错误的位置缩进将不可避免地返回错误。 例如,Python 的第一行不应该缩进。

3. 有时,在完成一个过期的、特别长的程序时,您可能会在不知不觉中错过缩进复合语句函数,例如 for、while 和 if。 这将再次导致缩进错误。 这是使用 Python 时对缩进最基本的需求,需要严格练习才能掌握。

4. 如果在使用自定义函数或不同的类时忘记使用缩进,很可能会弹出错误。

如何解决 Python 中的缩进错误?

1. 检查错误的空格或制表符。 不幸的是,没有快速修复缩进错误的方法。 由于代码是您的,事实仍然是您必须评估每一行以单独识别错误实例。 但是,由于代码行是按块排列的,因此过程相对简单。 例如,如果您在特定序列中使用了“if”语句,则可以交叉检查是否记得缩进下一行。

2. 确保特定块的缩进在整个代码中保持不变,即使在中间引入了一个新块。 检查缩进中的不一致。

如果上述手动解决方案对您不起作用,并且您很难弄清楚您错过了缩进的位置,请按照以下步骤操作:

3. 转到您的代码编辑器设置并启用旨在显示选项卡和空格的选项。 启用此功能后,您将看到单个小点,其中每个点代表一个制表符/空白。 如果您注意到在不应该出现的地方丢失了一个drop,那么该行可能有一个缩进错误。

4. 使用 Python 解释器内置的 Indent Guide。 可以说,这种方法对于几行代码来说效率很低。 但是,由于它会带您浏览每一行并准确显示错误所在的位置,因此它是查找和修复所有错误的最可靠方法。

另请阅读:现实世界中最令人着迷的 12 个 Python 应用程序

缩进的好处

可读性和一致性对于任何好的代码都是必不可少的。 在 PEP 8 空白之后,道德应该是不可协商的。 它在逻辑上证实了您的代码,从而有助于获得更愉快的编码体验。 此外,如果您遵循此文体指南,其中可读性是您的事实,那么您不认识但对您的工作感兴趣的人将轻松理解您的代码。

缩进的缺点

  • 如果代码很大并且缩进已损坏,则修复缩进错误可能会很乏味。 这通常是从在线资源、Word 文档或 PDF 文件复制代码时。
  • 流行的编程语言通常使用大括号进行缩进。 对于刚开始使用 Python 的程序员来说,适应使用空格进行缩进的想法可能很困难。

加起来

你和编写良好的代码之间的一切都是缩进,而你、编写良好的代码及其无缝执行之间的一切都是缩进错误。 现在,所有人都会犯错。 所有的程序员都是人。 因此,所有的程序员都会犯错误。 但是一个缩进错误很容易解决。 您需要做的就是呼吸并占据您的空间。

我希望你在处理这些 python 项目时能学到很多东西。 如果您对学习数据科学以领先于快节奏的技术进步感到好奇,请查看 upGrad 和 IIIT-B 的数据科学执行 PG 计划,并为未来提升自己的技能。

由于 Python 中的缩进,我会得到什么错误?

Python 通过查看行首的空格来确定代码块何时开始和停止。 您可能会遇到以下缩进错误:
1.意外缩进——这行代码的开头的空格比前面的要多,但它前面的空格没有开始子块。 在一个块中,所有代码行必须以相同的空白字符串开头。
2. Unndent 不对应任何外部缩进级别- 这行代码在开头包含的空格比前一行少,但它也不匹配任何其他块。
3.需要一个缩进块——这行代码以与前一行相同数量的空格开始,但前一行应该开始一个块(例如,if/while/for 语句,函数定义)。

你如何修复缩进 Spyder 中不一致的制表符和空格?

制表符和空格是两个单独的字符,在屏幕上显示为空格。 问题是对于制表符应该有多大没有达成共识,因此一些编辑器将其显示为占用 8 个空格,另一些显示为 4 个空格,还有一些显示为 2 个,而且它也是可自定义的。
当您编写代码但一行用制表符缩进而另一行用空格缩进时,Python 会抛出一个错误,尽管它在编辑器中看起来不错(但如果您将制表符的宽度加倍,它看起来会不太好;现在制表符行将缩进两级)。
为避免此问题,请转到文本编辑器的选项并启用将制表符转换为空格功能,它将制表符替换为 n 个空格字符,其中 n 是编辑器使用的制表符宽度。

你如何在 Spyder 上显示缩进?

选择您的代码并按 Tab 或 Shift + Tab 缩进或取消缩进。 修改代码的其他工具可以在编辑部分找到。