Skip to content

选择语句:if .. else

选择语句,也称为决策语句 (Decision making statements),根据一个或多个测试表达式的结果来控制程序的流程。如果满足条件 (True),则执行代码块。还提供了在不满足条件时执行另一个代码块的功能。

这个过程可以用下面的流程图来演示:

选择流

Python 支持 if 复合语句,它提供了这种控制。if 语句包括:

  • if 关键字,后跟测试表达式、一个冒号 : 和一个缩进的代码块,如果条件满足则执行该代码块
  • (可选) 一个或多个 elif 子句,后跟它们的测试条件及其对应的代码块
  • (可选) else 子句及其对应的代码块,如果上述所有条件 (if, elif) 都不满足,则执行该代码块

下面提供了一个 if 语句的示例:

python
'''
age - 贷款申请人的年龄
emp - 是否就业 (布尔值)
cscore - 申请人的信用评分
'''
result = None
if age < 26 and not emp:
    result = "贷款被拒"
elif age > 35 and cscore < 600:
    result = "贷款被拒"
else:
    result = "贷款批准"
print(result)

上述代码的控制流视图是:

代码流中的选择

示例

让我们看一些使用选择语句的编程问题。

1. 绝对值

编写一个程序,使用条件语句输出两个数字之差的绝对值。

代码

python
n1 = int(input("输入第 1 个数字: "))
n2 = int(input("输入第 2 个数字: "))

if n1 > n2:
    diff = n1 - n2
else:
    diff = n2 - n1

print(n1, "和", n2, "的差是", diff)

输出

输入第 1 个数字: 12
输入第 2 个数字: 15
12 和 15 的差是 3

2. 3 个数排序

编写一个程序,接受用户输入的 3 个数字,并按升序打印它们。

代码

python
a = int(input("输入第 1 个数字: "))
b = int(input("输入第 2 个数字: "))
c = int(input("输入第 3 个数字: "))

if b < a:
    # 交换 a 和 b 的值
    a, b = b, a

if c < b:
    b, c = c, b
    if b < a:
        a, b = b, a

print("排序后的数字:", a, ",", b, ",", c)

输出

输入第 1 个数字: 9
输入第 2 个数字: 2
输入第 3 个数字: 6
排序后的数字: 2 , 6 , 9

3. 可除性

编写一个程序,接受两个数字,并测试第一个数字是否能被第二个数字整除。

代码

python
a = int(input("输入第 1 个数字: "))
b = int(input("输入第 2 个数字: "))

if a % b == 0:
    print(a, "可以被", b, "整除")
else:
    print(a, "不能被", b, "整除")

输出

输入第 1 个数字: 9
输入第 2 个数字: 2
9 不能被 2 整除

输入第 1 个数字: 9
输入第 2 个数字: 3
9 可以被 3 整除