if 分支使用布尔表达式或布尔值作为分支条件来进行分支控制。Python 的 if 分支既可作为语句使用,也可作为表达式使用。下面先介绍 if 分支作为语句使用的情形。
if 语句可使用任意表达式作为分支条件来进行分支控制。Python 的 if 语句有如下三种形式:
第一种形式:
if expression:
statements…
第二种形式:
if expression
statements…
else:
statements…
第三种形式:
if expression:
statements…
elif expression:
statements…
…//可以有零条或多条elif语句
else:
statement…
在上面 if 语句的三种形式中,第二种形式和第三种形式是相通的,如果第三种形式中的 elif 块不出现,则变成了第二种形式。
对于上面的 if 分支语句,执行过程是非常简单的,即如果 if 条件为“真”,程序就会执行 if 条件后面的多条语句;否则就会依次判断 elif 条件,如果 elif 条件为“真”,程序就会执行 elif 条件后面的多条语句……如果前面所有条件都为“假”,程序就会执行 else 后的代码块(如果有)。
在上面的条件语句中,if expression:、elif expression:及 else:后缩进的多行代码被称为代码块,一个代码块通常被当成一个整体来执行(除非在运行过程中遇到return、break、continue等关键字),因此这个代码块也被称为条件执行体。
Python是一门很“独特”的语言,它的代码块是通过缩进来标记的(大部分语言都使用花括号或 end 作为代码块的标记),具有相同缩进的多行代码属于同一个代码块。如果代码莫名其妙地乱缩进,Python 解释器会报错(前文说过,Python 不是格式自由的语言)。
关于 Python 的“缩进”风格,喜欢它的人说这是一种乐趣;不喜欢它的人说这是一门需要游标卡尺(一种长度测量仪器)的语言,因为你需要使用游标卡尺去测量每行代码的缩进。当然,这是一句玩笑话。
例如如下程序:
s_age = input("请输入您的年龄:") age = int(s_age) if age > 20 : # 只有当ag