if 语句

Python 条件语句是通过一条或多条语句的执行结果(True 或 False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

../../_images/if.01.jpg

if 语句能够有条件地执行代码。这意味着如果条件(if 和冒号之间的表达式)为真,就执行缩进代码块中的代码;如果条件为假,则不执行。

>>> if 'a' == 'a':
...     print('aaaaa')
...
aaaaa

else 子句

如果条件语句为 False,可使用 else 子句增加一种选择(之所以叫子句是因为 else 不是独立的语句,而是 if 语句的一部分)。

>>> if 'a' == 'b':
...     print('aaaaa')
... else:
...     print('bbbbb')
...
bbbbb

在这里,如果没有执行 if 代码块(因为条件为假),将进入 else 代码块。当 if 和 else 联合使用时,必定会执行其中一个代码块。

还有一个与 if 语句很像的“亲戚”,它就是条件表达式,C 语言中三目运算符的 Python 版本。下面的表达式使用 if 和 else 确定其值:

status = "friend" if name.endswith("Gumby") else "stranger"

如果条件为真,表达式的结果为第一个值(friend),否则为第二个值(stranger)。

elif 子句

要检查多个条件,可使用 elif(else if 的缩写)。

num = int(input('Enter a number: '))
if num > 0:
    print('The number is positive')
elif num < 0:
    print('The number is negative')
else:
    print('The number is zero')

代码块嵌套

在 if 语句代码块中可以加入其他 if 语句块中。

name = input('What is your name? ')
if name.endswith('Gumby'):
    if name.startswith('Mr.'):
        print('Hello, Mr. Gumby')
    elif name.startswith('Mrs.'):
        print('Hello, Mrs. Gumby')
    else:
        print('Hello, Gumby')
else:
    print('Hello, stranger')

这里,如果名字以 Gumby 结尾,然后会检查名字开头。