本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.3节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 条件语句
if与else语句可执行简单的检验,如下所示:
if a < b:
print "Computer says Yes"
else:
print "Computer says No"
if和else子句的主体是用缩进表示的。else子句是可选的。
要创建一条空子句,可以使用pass语句,如下所示:
if a < b:
pass # 什么也不执行
else:
print "Computer says No"
使用or、and和not关键字可以组成布尔表达式:
if product == "game" and type == "pirate memory" \
and not (age < 4 or age > 8):
print "I'll take it!"
注意
编写复杂的检验条件通常需要编写很长的代码行,看起来令人生厌。为了提高代码的可读性,可以像上面一样在一行的结尾使用反斜杠(),然后就可以在下一行继续书写上一条语句的内容。如果这样做,正常的缩进规则将不被应用于下一行,因此可以随意设置后续行的格式。
Python没有专门的switch或case语句用于检测多个值。要处理多个检验条件,可以使用elif语句,如下所示:
if suffix == ".htm":
content = "text/html"
elif suffix == ".jpg":
content = "image/jpeg"
elif suffix == ".png":
content = "image/png"
else:
raise RuntimeError("Unknown content type")
要表示真值,可以使用布尔值True和False,例如:
if 'spam' in s:
has_spam = True
else:
has_spam = False
所有关系运算符(如<和>)的结果都返回True或False。本例中使用的in运算符通常用于检查某个值是否包含在另一个对象(如字符串、列表或字典)中。它也返回True或False,因此前一个例子可以缩短为:
has_spam = 'spam' in s