要求严格的代码缩进是python语法的一大特色,就像C语言家族(C、C++、Java、C#等等)中的花括号一样重要,在大多数场合还有必要。在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要求只是纯粹是方便人(程序员)来阅读、使用或修改的,对于编译器或者解释器而言,完全是视而不见的。

但是对Python解释器而言,每行代码前的缩进都有语法和逻辑上的意义。Python的这个特性,也经常在Python使用者和非Python使用者中引起争论。

Python的代码缩进之起源,有人说事继承于ABC(没听过但感觉很古老的语言),有人说是避免花括号,我猜可能是python发明者一时心血来潮的决定,大概也只有他能解释这个问题。不管怎样,作为发展了十余年的一门语言,这条语法规则已经不大可能改变了。

实际上,严格要求(强制)的代码缩进,就像一把双刃剑,有好处也有坏处。好处显而易见,在严格要求的代码缩进之下,代码非常整齐规范,赏心悦目,提高了可读性,在一定程度上也提高了可维护性。有人说,这种约束,对团队开发非常有利,当然,也不见得,这就要看强制代码缩进的坏处。

Python严格的代码缩进,对于从其他语言转过来的人(现在计算机和相关专业第一门语言一般都是C/C++或Java吧,他们的语法风格基本是一直的),可能要适应一段时间。代码缩进十分严格,如果不按规律办事,不小心的话就会出现语法错误,比如unexpected indent之类的。甚至有时也会出现逻辑错误。

python的缩进意义_python缩进错误的原因是什么相关推荐

  1. python可以用tab缩进吗_python缩进可以用tab吗

    Python中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存储.在开始读取文件之前,0(表示缩进级别为0,无 缩进)会被首先压入栈中.然后从文件开头到末尾,依次读取每行逻辑代码,每 ...

  2. python应为缩进块_Python缩进

    在Python中的空白是重要的.实际上,在一行开始的空格是重要的.这被称为缩进.在逻辑行开头的前导空白(空格和制表符)用于确定逻辑行的缩进级别,它用于依次确定语句的分组. 这意味着一起的语句必须有相同 ...

  3. python缩进块_Python缩进规则(包含快捷键)

    和其它程序设计语言(如 Java.C 语言)采用大括号"{}"分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次. 在 Python 中,对于类定义. ...

  4. python缩进教学_Python缩进和选择学习

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

  5. python中if缩进规则_Python缩进与if语句 空格的魅力

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

  6. python中ioerror怎么解决_Python IOError错误异常原因|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ python语言IOError错误一般多发生在对文件操作报错时,表示要打开的文件不存在,当然能引发IOEr ...

  7. python语音识别设置失败_Python语音识别错误通道数无效

    作为项目的一部分,我正在python上运行一个语音识别代码.我面临着一个非常奇怪的问题 当我把语音识别代码放在一个函数中时,比如:def loop(): r=sr.Recognizer() with ...

  8. python空字符串意义_Python中的None与空字符串”的区别

    1.首先要了解Pythond的对象的概念: Python中,万物皆对象,所有的操作都是针对对象的,那什么是对象,5是一个int对象,'oblong'是一个str对象,异常也是一个对象,抽象一点是,人, ...

  9. python目录名称无效_python目录名错误怎么解决?这几种方案才是你需要学会的

    [摘要]python可以用来做很多事情,如何统计python词频?如何用python统计目录名错误的事情?这是我每次面试的时候都会问的一个问题,那么python目录名错误怎么解决?这几种方案才是你需要 ...

最新文章

  1. 《C++入门经典(第6版)》——1.5 问与答
  2. auto_ptr使用介绍
  3. weka源码编译步骤
  4. Standard Driver Routines(标准驱动程序)
  5. 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
  6. 《与孩子一起学编程》书评
  7. hd4400 显卡opencore 下的 8个苹果问题解决方法
  8. 【高等数学】高阶偏导数与隐函数的高阶偏导数的深度辨析
  9. SQLiteDatabaseLockedException: database is locked
  10. 倒写的乘法口诀表用c语言表示,乘法口诀表,C语言实现
  11. 千万千万不要和女程序员做同事!否则你会......爱上她
  12. 资源分配问题(动态规划)
  13. 小清新个人简历PPT模板
  14. 广域网(PPP协议和HDLC协议)
  15. CMWAP和CMNET 的区别与适用范围
  16. Linux和Windows命令行中使用命令的输出(删除几天前的日志)
  17. griffin measure metrics无法自动汇总报告结果的问题
  18. 高级信息系统项目管理师--案例分析
  19. pandas中的ix,iloc,loc方法获取数据
  20. 发那科 fanuc FANUC 驱动图纸,电路图

热门文章

  1. docsify搭建知识库
  2. [极客大挑战 2019]BuyFlag
  3. html css js速成_CSS速成课程
  4. 使用React Router v4的嵌套路由
  5. 131_Power Query之获取钉钉日志自动刷新Power BI报告
  6. 论重写和里式替换原则(LSP)
  7. python爬虫之多线程、多进程+代码示例
  8. Python高级——协程
  9. 【CCF】201709-2公共钥匙盒
  10. PRML-系列一之1.6