在写作文的时候,老师会告诉我们每段要空两格,这两个空格标志着一个新的段落开始了。在编写程序的时候,我们也要采用类似的方式,通过缩进来表示代码块的开始和结束。

认识缩进

在之前学过的的例子中,我们所编写的都是简单的表达式语句,没有缩进。但是,要创建复合语句,就需要用到缩进这个重要的概念。

我们可以把许多代码行组织到一个代码块中,其中的每一行代码的开始,都保持相同的空格数,通过查看代码行前面的空格数,就可以判断代码块的起始和结束,而这个空格数就是缩进。

Python 根据缩进来判断当前代码行和前面代码行的关系。缩进的好处是让代码看上去更加清晰易读,如果代码段比较长,通过缩进,我们可以快速了解程序的组织结构,而且也不容易出错。

下面,我们来看一个有很多行代码的例子。因为程序的代码段比较长,如果没有缩进,我们会很难分清代码的组织结构。这段代码只是想说明缩进的重要性,具体含义大家可以不必关心,代码如下。

letter = input("please input:")

if letter == 'S':

print ('please input second letter:')

letter = input("please input:")

if letter == 'a':

print ('Saturday')

elif letter == 'u':

print ('Sunday')

else:

print ('data error')

elif letter == 'F':

print ('Friday')

elif letter == 'M':

print ('Monday')

elif letter == 'T':

print ('please input second letter')

letter = input("please input:")

if letter == 'u':

print ('Tuesday')

elif letter == 'h':

print ('Thursday')

else:

print ('data error')

elif letter == 'W':

print ('Wednesday')

else:

print ('data error')

提示:很少有哪种语言能像 Python 这样重视缩进。对于其他语言而言,缩进对于代码的编写来说是“有了更好”,而并不是“没有不行”,因为缩进只是代码书写风格的问题。

但是,对于 Python 语言而言,缩进则是一种语法,它可以告诉我们 Python 代码从哪里开始,到哪里结束。Python 中的复合语句是通过缩进来表示的。这样做的好处就是减少了程序员的自由度,有利于统一风格,使得人们在阅读代码时会更加轻松。

但是,在编写 Python 程序的时候,我们也要记住,如果缩进不正确,程序可能无法运行或者会出错。

Python 缩进的长度

将代码块缩进多长并不重要,只要保证整个代码块的缩进程度是一样的就可以了。为此,IDLE 提供了自动缩进功能,它能将光标定位到下一行的指定位置。

当我们键入类似于 if 这样与控制结构对应的关键字之后,按下回车键,IDLE 就会启动自动缩进功能,代码如下。

if 3>2 :

print("Three is greater than two")

一般情况下,IDLE 将代码缩进一级是 4 个空格。如果想改变这个默认的缩进量的话,可以从“Format”菜单选择“New Indent Width”命令,如图 1 所示。

图 1

在弹出的窗口中,默认是 4 个空格,我们也可以按照自己的需要,修改这个值,如图 2 所示。

图 2

对初学者来说,需要注意的是:尽管自动缩进功能非常方便,但是我们不能完全依赖它,因为有时候自动缩进未必完全符合我们的要求,所以,写完程序,还需要仔细检查一下。

Python 常见的缩进问题

遗漏缩进

我们前面介绍过,在 if 句后面且属于条件组成部分的代码行,是需要缩进的。如果像下面的代码一样(代码如下),忘记了缩进:

if 3>2 :

print("Three is greater than two")

那么,编译的时候,Python 会告诉我们这里有语法错误,需要一个缩进,错误信息如图 3 所示。

图 3

通常,对紧跟在 if 语句之后的代码行增加缩进后,就个错误就会消失。

增加没有必要的缩进

如果在不需要缩进的地方,不小心增加了缩进,会出现什么样的情况呢?我们来看一段代码,它在不需要缩进的地方增加了缩进,代码如下。

print ("This is an apple")

print("This is a banana")

编译的时候,Python 会给出错误提示,告知这里有不该出现的缩进,如图 4 所示。

图 4

缩进导致程序的逻辑错误

前面介绍的遗漏缩进和增加冗余的缩进这两种情况,都是语法错误,由我们自己根据运行程序所得到的结果是否和预期的结果相同来做出判断。

我们来看一个示例。假设有这样一个程序,它让用户输入一个数字,然后根据这个数字给出用户提示。当输入的数字大于 10 时,会提示数字大于 10 并且将其重新设置为 0,如果用户输入的数字不大于 10,那么直接显示该数字,代码如下。

number=input("Please input a number: ")

if (int(number)>10):

print("Your number is greater than ten and reset it zero")

number="0"

print("Your number is: "+number)

当我们输入 1 的时候,因为 1 不大于 10,所以会直接显示 "Your number is:1"。如果输入 18的时候,因为 18 大于 10,所以 number 会被重置为 0,显示内容就成为 "Your number is:0",如图 5 所示。

图 5

接下来,我们修改一下代码的缩进,代码如下。

number=input("Please input a number: ")

if (int(number)>10):

print("Your number is greater than ten and reset it zero")

number="0"

print("Your number is: "+number)

可以看到,number="0" 这条语句现在没有了缩进,这意味着无论输入的数字是否大于 0,都会将 number 重新设置为“0”,如图 6 所示。

图 6

尽管我们输入的数字还是 1 和 18,但是得到的结果却都是 "Your number is 0"。可以看到,缩进有时会影响到整个程序的逻辑。

python的缩进规则是什么意思_Python缩进规则精讲相关推荐

  1. python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...

    资源详情 r n t某课网好评度100%的Python Flask高级编程之RESTFul API前后端分离精讲 r n t t t第1章 随便聊聊 r n t t t聊聊Flask与Django,聊 ...

  2. python的缩进规则具体是什么_python缩进规则叫什么

    Python中的缩进(Indentation)决定了代码的作用域范围.这一点和传统的c/c++有很大的不同(传统的c/c++使用花括号花括号{}符决定作用域的范围:python使用缩进空格来表示作用域 ...

  3. python的缩进规则是什么意思_python缩进规则叫什么

    Python中的缩进(Indentation)决定了代码的作用域范围.这一点和传统的c/c 有很大的不同(传统的c/c 使用花括号花括号{}符决定作用域的范围:python使用缩进空格来表示作用域的范 ...

  4. python的缩进规则是什么意思_python缩进规则有哪些?只有遵守该规则的程序才能运行...

    [摘要]Python 对代码的缩进要求非常严格,那么python缩进规则有哪些?只有遵守该规则的程序才能运行,小编建议大家可以试着理解这些内容,也许对您的python学习有帮助,毕竟实践出真知,所以你 ...

  5. python中、函数定义可以不包括以下_python函数定义精讲

    原标题:python函数定义精讲 在 Python 中,你也可以定义包含若干参数的函数.这里有三种可用的形式,也可以混合使用. 默认参数值 最常用的一种形式是为一个或多个参数指定默认值.这会创建一个可 ...

  6. python相关函数_python常用函数精讲

    原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...

  7. python快速入门精讲_Python快速入门精讲

    基础入门篇 第0章从零开始3 0.1克服编程恐惧3 0.2如何写出好程序4 0.3为什么选择Python5 0.4Python的发展和应用6 0.5一些建议8 0.6多平台搭建Python开发环境10 ...

  8. python默认的一个代码缩进是几个空格_python缩进长度是否统一

    Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...

  9. python中的缩进是长度统一吗_python缩进长度是否统一

    Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误. 在 Python 中,对于类定义.函数定义.流程控制语句.异常处理语句等, ...

最新文章

  1. STL标准库vector笔记
  2. Java——多线程(死锁)
  3. 23.JSP 隐式对象
  4. Python破解滑块验证码算法,完美避开人机识别
  5. idea查看类关系_IDEA查看类关系图【正确姿势】,非常实用
  6. 5G对于数据中心的影响有哪些
  7. 虚拟机备份克隆导致SQL SERVER 出现IO错误案例
  8. 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
  9. Linux timeout命令
  10. A - 可以教学姐画画嘛QAQ
  11. rust 官服指令_基本指令_腐蚀RUST基本指令及服务器指令大全_3DM单机
  12. 一个汉字转拼音的小工具
  13. 液晶面板价格继续下跌,中国面板企业能否盈利面临考验
  14. 计算机组成原理题目透析(2)
  15. 异常处理-No SecurityManager accessible to the calling code
  16. Handler中MessageQueue的enqueueMessage笔记
  17. 揭秘5G,带你了解通信发展
  18. css精灵图(雪碧图)切图
  19. charles的证书下载(app)
  20. 机器学习笔记 - HaGRID—手势识别图像数据集简介

热门文章

  1. 手机处理器的nm制造工艺
  2. Terraform基本介绍(1)
  3. win10安装linux子系统CentOS
  4. 怎么把外部参照合并到图纸_为什么在CAD图纸中插入外部参照后会出现多余图形?...
  5. 每晚坚持10点前睡觉,半年后有什么变化?感觉自己年轻好几岁
  6. 51单片机|keilc51|实例|定时器中断|简易的交通灯设计
  7. oracle 修改序列 next number,oracle序列详解
  8. python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例
  9. OSChina 周四乱弹 ——虎落平阳被犬欺,猫落浴缸毛变稀
  10. Jquery表单序列化(serialize、serializeArray、serializeJson)及序列化后追加参数