Skip to content

Python 中的条件判断:if...else 语句详解

在编程的世界里,我们经常需要程序根据不同的情况做出不同的反应。就像我们平时生活中一样,如果天气晴朗,我们就去公园玩;如果下雨,我们就待在家里看书。这种“如果...就...”的逻辑,在 Python 中是通过条件判断语句来实现的,其中最常用的就是 if...else 语句。

什么是选择语句?

选择语句,也称为决策语句,它允许程序在运行时根据一个或多个条件的真假来选择执行不同的代码块。简单来说,它就是让程序拥有“思考”的能力,根据不同的情况做出不同的选择。

可以用下面的流程图来形象地表示这个过程:

选择流

if...else 语句的结构

Python 使用 if 语句来实现条件判断。一个完整的 if 语句通常包括以下几个部分:

  1. if 关键字: 标志着一个条件判断的开始。后面紧跟着一个条件表达式,这个表达式的结果必须是布尔值 (True 或 False)。
  2. 条件表达式: 用于判断真假的表达式。可以使用比较运算符(如 ==!=><>=<=)和逻辑运算符(如 andornot)来构建复杂的条件。
  3. 冒号 : if 语句的头部必须以冒号结尾,表示接下来是一个代码块。
  4. 缩进的代码块: 如果条件表达式的结果为 True,则执行这个代码块。Python 使用缩进来区分代码块,通常使用 4 个空格作为一个缩进级别。
  5. elif 关键字(可选): elif 是 "else if" 的缩写,用于添加额外的条件判断。一个 if 语句可以有多个 elif 子句。
  6. else 关键字(可选): 如果前面所有的条件表达式的结果都为 False,则执行 else 后面的代码块。一个 if 语句最多只能有一个 else 子句。

下面是一个 if...else 语句的例子:

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

这段代码模拟了一个简单的贷款审批流程。它首先判断申请人的年龄是否小于 26 岁且未就业,如果是,则拒绝贷款。否则,判断申请人的年龄是否大于 35 岁且信用评分低于 600,如果是,也拒绝贷款。如果以上条件都不满足,则批准贷款。

上述代码的控制流程可以用下图表示:

代码流中的选择

理解条件表达式

条件表达式是 if...else 语句的核心。它决定了程序执行哪一个代码块。让我们来详细了解一下条件表达式的构成:

  • 比较运算符: 用于比较两个值的大小或是否相等。

    • ==:等于
    • !=:不等于
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
  • 逻辑运算符: 用于组合多个条件表达式。

    • and:逻辑与。只有当所有条件都为 True 时,结果才为 True
    • or:逻辑或。只要有一个条件为 True,结果就为 True
    • not:逻辑非。用于取反一个条件表达式的结果。

示例:用 if...else 解决实际问题

下面我们通过几个例子来学习如何使用 if...else 语句解决实际问题。

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

代码解释:

这个程序首先接收用户输入的两个数字。然后,使用 if...else 语句判断第一个数字是否大于第二个数字。如果是,则计算 n1 - n2;否则,计算 n2 - n1。最后,输出计算结果。

2. 对三个数字排序

编写一个程序,接收用户输入的三个数字,并按照从小到大的顺序打印它们。

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

代码解释:

这个程序使用了多个 if 语句来实现排序。首先,比较 ba 的大小,如果 b 小于 a,则交换它们的值。然后,比较 cb 的大小,如果 c 小于 b,则交换它们的值。最后,再次比较 ba 的大小,确保 a 是最小的数字。最后,输出排序后的结果。

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 整除

代码解释:

这个程序使用了取模运算符 % 来判断整除关系。如果 a % b 的结果为 0,则表示 a 可以被 b 整除;否则,表示 a 不能被 b 整除。

通过以上几个例子,相信你已经对 if...else 语句有了更深入的理解。在实际编程中,if...else 语句是非常常用的工具,它可以帮助我们构建更加智能和灵活的程序。