购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.7 决策: if 语句和比较运算符

条件 是一个值为 True False 的布尔表达式。下面的代码段判定 7 是否大于 4 以及 7 是否小于 4

000

True False 的首字母都要大写。 True False 是Python关键字,使用关键字作为标识符会导致语法错误。

下表列出了Python中的 比较运算符

000

运算符 > < >= <= 具有相同的优先级。运算符 == != 具有相同的优先级,但低于 > < >= <= 的优先级。运算符 == != >= <= 的两个符号之间不能插入空格,否则会引发语法错误,例如:

000

如果颠倒运算符中的符号,将 != >= <= 写成 =! => =< ,也会引发语法错误。

使用 if 语句做出决策:首次使用脚本

首先介绍一个简单版本的 if 语句,它根据条件来决定是否执行一条语句(或一组语句)。程序将会读取用户输入的两个整数,并使用6条连续的 if 语句对它们进行比较,每条语句使用一种比较运算符。如果 if 语句中的条件为 True ,则执行相应的 print 语句;否则直接跳过 print 语句。

IPython交互模式有利于执行简短的代码段并立即查看结果。但要将多个语句作为一组语句执行,通常会将它们编写为一个脚本存储在以 .py (Python的缩写)作为扩展名的文件中,例如本示例的脚本 fig02_01.py 。脚本也称为程序,有关如何查找和执行本书中的脚本的说明,可以参考1.5节。

每次执行脚本 fig02_01.py ,6个条件中都会有3个为 True 。为了说明这一点,执行脚本3次,每次输入两个整数,第一次第一个数 较小 ,第二次两个数 相等 ,第三次第一个数 较大 ,执行的结果会显示在脚本之后。

本书在介绍脚本时,都会首先给出脚本的代码,之后再对脚本的代码进行解释。为方便阅读,会在脚本中显示行号。在IDE中可以设置是否显示行号,行号不是Python代码的一部分。要执行脚本 fig02_01.py ,转到本章的 ch02 示例文件夹,然后输入:

    ipython fig02_01.py

如果已经运行了IPython,可以使用下面的命令执行脚本:

000
000

注释

第1行以字符井号( # )开头,表示该行的其余部分是 注释

000

为了便于理解,每个脚本都以一条注释语句开始,该条语句的内容为脚本的文件名。注释也可以从一行代码的右端开始,直到该行的末尾。

文档字符串

Style Guide for Python Code 建议每个脚本都应该以说明脚本用途的文档字符串开头,例如第2行中的:

000

对于更复杂的脚本,文档字符串常常包含很多行。在后面的章节中,我们将使用文档字符串来描述自定义的脚本组件,例如新函数和新类型(称为类)。我们还将介绍如何使用IPython的帮助机制访问文档字符串。

空行

第3行是一个空行。使用空行和空格可以使代码更易于阅读。空行、空格和制表符都称为 空白 。Python忽略了大多数空白,但有些缩进是必不可少的。

将长语句分为多行

第4~5行

000

向用户显示提示信息。因为提示信息太长,放在一行会影响程序的可读性,因此将它分成两个字符串放在两行。之前介绍过,可以将一个用逗号分隔的列表作为 print 函数的参数,而 print 会依次显示列表中的值,并用空格作为值与值之间的分隔。

一般情况下,会将一条语句写在一行上。但如有必要,也可以使用续行符“\”将长语句拆分为多行。Python还允许在括号中拆分长代码行而不使用续行符(如第4~5行)。这是 Style Guide for Python Code 推荐的拆分长代码行的首选方法。在拆分长代码行时应该始终遵循选择有意义的断点这一原则,例如,在 print 函数参数中的某个逗号之后或在长表达式中的某个操作符之前。

从用户的输入中读取整数值

第8行和第11行使用内置的 input int 函数来提示和读取用户输入的两个整数值。

if 语句

第13~14行的 if 语句:

000

使用比较运算符“ == ”来判断变量 number1 number2 的值是否相等。如果相等,则条件为 True ,第14行将显示一行文本,说明两个值相等。如果后面的 if 语句的条件为 True (第16、19、22、25和28行),则对应的 print 语句也会显示一行文本。

每个 if 语句都包含关键字 if 、要测试的条件和冒号( : ),后跟一个缩进的语句块,称为 套件 。每个套件必须包含一条或多条语句。忘记条件后的冒号( : )是一个常见的语法错误。

套件缩进

Python要求对套件中的语句进行缩进。 Style Guide for Python Code 推荐使用四个空格作为缩进,本书的代码使用了这种缩进方式。在下一章中我们会看到不正确的缩进可能会导致的错误。

混淆“ == ”和“ =

if 语句的条件中使用赋值号( = )而不是相等运算符( == )是一种常见的语法错误。为了避免这种情况的发生,可以将“ == ”读作“等于”,将“ = ”读作“被赋值”。在下一章中我们将会看到在赋值语句中误将“ = ”写作“ == ”可能会导致的不易察觉的问题。

链式比较

为了检测一个值是否在某个范围内,可以使用链式比较。下面的比较要确定 x 是否在 1 5 的范围内(包括 1 5 ):

000

本章介绍的运算符的优先级和结合性

本章介绍的运算符的优先级和结合性如下表所示:

000

上表按照优先级的降序从上到下列出了本章介绍的运算符。在书写包含多个运算符的表达式时,为了确保它们会按照期望的顺序进行求值,可以参照网址https://docs.python.org/3/reference/expressions.xhtml#operator-prece-dence上的运算符优先级图表。 116O1s012hXeLX3yZK3BXcNz20+kMOX4zQyTw/b8S1e15WdfoNWEi6fclLLHt05M

点击中间区域
呼出菜单
上一章
目录
下一章
×