条件测试:
每条if语句的核心都是一个值为Ture或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为Ture还是False来决定是否执行if语句中的代码。如果条件测试的值为Ture,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。
检查是否相等:
在Python中检查是否相等时不区分大小写,例如,两个大小写不同的值会被视为不相等。网站采用类似的方式让用户输入的数据符合特定的格式。例如,网站可能类似的测试来确保用户名是独一无二的,而并非只与另一个用户名的大小写不同。用户提交新的用户名时,将把它转换为小写,并与所有既有用户名的小写版本进行比较。执行这种检查时,如果已经有用户名“john”(不管大小写如何),则用户提交用户名"John"时将遭到拒绝。
检查是否不相等:
要判断两个值是否相等,可结合使用惊叹号和等号( != ),其中的惊叹号表示不。在很多编程语言中都如此。你编写的大多数条件表达式都检查两个值是否相等,但有时候检查两个值是否不相等的效率更高。在if语句中可使用各种数字比较,这让让你能够直接检查关心的条件。你可能想同时检查多个条件,例如,有时候你需要在两个条件都为Ture时,就执行响应的操作,在这些情况下,关键字and和or可助你一臂之力。
检查特定值是否不包含在列表中:
还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in。例如,如果有一个列表,其中包含被禁止在论坛上发表评论的用户,就可允许用户提交评论前检查,他是否被禁言。
布尔表达式:
随着你对编程的了解越来越深入,将遇到术语布尔表达式。它不过是条件测试的别名,与条件表达式一样,布尔表达式的结果要么为Ture,要么为False。在跟踪程序状态或程序中重要的条件方面,布尔值提供了一种高效的方式。
if语句:
经常要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。Python只执行if-elif-else结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。可根据需要使用任意数量的elif代码块。else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行,这可能引入无效甚至无意义的数据。如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码。这样,你就可以肯定,仅当满足响应的条件时,你的代码才会执行。if-elif-else结构功能强大,但仅适合只有一个条件满足的情况;遇到通过的测试后,Python就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。然而有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包括elif和else代码块的简单if语句。在可能有多个条件为Ture,且你需要在每个条件为Ture都采用相应措施时,适合用这种方法。总之,如果你只想执行一个代码块,就使用if-elif-else结构,如果要运行多个代码块,就使用一系列独立的if语句。
使用if语句处理列表:
通过结合使用if语句和列表,可完成一些有趣的任务:对列表特定的值做特殊处理,高效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都将按预期那样运行。确定列表不是空的:到目前为止,对处理的每个列表都做了一个简单的假设,即假设它们都至少包含一个元素。我们马上就要让用户来提供存储在列表中的信息,因此不能再假设循环运行时列表不是空的。有鉴于此,在运行for循环前确定列表是不是空很重要。
使用多个列表:
每个示例都展示了良好的格式设置习惯。在条件测试的格式设置方面。PEP 8提供的唯一建议是,在诸如==, >= 和 <=等比较运算两边各添加一个空格。例如,if age < 4:要比 if age<4好。这样的空格不会影响Python代码的解读,而只是让代码阅读起来更容易。