Python 条件语句
条件语句允许你的程序根据特定的条件做出决定,并执行不同的代码路径。
条件语句为你的代码带来了逻辑和灵活性,使其能够动态地响应各种输入和情况。如果没有条件语句,程序每次都会无视处理的数据,执行完全相同的指令序列。
本章将为你全面讲解 Python 中的 if、elif 和 else 语句,为你提供创建更复杂、适应性更强的程序所需的工具。
1. if 语句:有条件地执行代码
if 语句是条件执行的最基本形式。它允许你仅在某个特定条件为真(True)时才执行一段代码。其语法非常直接:
if condition:
# 如果条件为真,将执行此代码这里的 condition(条件)是一个计算结果为 True 或 False 的表达式。如果条件为 True,则执行 if 语句下方缩进的代码块。如果条件为 False,则直接跳过该代码块。
1.1 if 基础示例
让我们从一个简单的例子开始:
age = 20
if age >= 18:
print("你有资格投票。") # 这一行会被执行,因为 age 的值是 20在这个例子中,条件 age >= 18 的计算结果为 True,因为 age 的值是 20,大于或等于 18。因此,print 语句被成功执行。
现在,让我们来看一个条件为 False 的情况:
age = 16
if age >= 18:
print("你有资格投票。") # 这一行不会被执行,因为 age 的值是 16在这里,条件 age >= 18 的计算结果为 False,因为 16 小于 18。结果就是,print 语句被跳过,控制台不会打印任何内容。
1.2 使用比较运算符
if 语句中的条件通常会用到比较运算符(你在之前的模块中可能已经学过)。这些运算符允许你比较不同的值并确定它们之间的关系。以下是常用比较运算符的快速回顾:
| 运算符 | 含义 |
|---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
让我们看看使用这些运算符的代码示例:
x = 10
y = 5
if x > y:
print("x 大于 y") # 输出: x 大于 y
if x != y:
print("x 不等于 y") # 输出: x 不等于 y
if x == y:
print("x 等于 y") # 这一行不会被执行1.3 缩进至关重要
在 Python 中,缩进(Indentation)用于定义代码块。if 语句下方的代码块必须缩进。标准的缩进是四个空格。不正确的缩进会导致语法错误。
age = 25
if age > 18:
print("你是一个成年人。")
print("你可以开车。") # 这两行都属于 'if' 代码块的一部分age = 15
if age > 18:
print("你是一个成年人。")
print("你不是一个成年人。") # 这一行在 'if' 代码块之外,因此它总是会被执行在第二个例子中,无论年龄是多少,“你不是一个成年人。” 这句话总是会被打印出来,因为它没有缩进,不属于 if 语句控制的代码块。
2. else 语句:提供备选方案
else 语句提供了一个备选的代码块,当 if 条件为 False 时就会执行这个备选代码块。它的语法如下:
if condition:
# 如果条件为真,执行此代码
else:
# 如果条件为假,执行此代码2.1 else 基础示例
让我们回顾一下刚才的投票资格示例,并加上一个 else 语句:
age = 16
if age >= 18:
print("你有资格投票。")
else:
print("你暂时还没有资格投票。") # 输出: 你暂时还没有资格投票。在这种情况下,因为 age 是 16,条件 age >= 18 为 False。因此,else 语句下方的代码块被执行,打印出“你暂时还没有资格投票。”。
2.2 结合 if 和 else
if 和 else 语句协同工作,提供了一个二选一的分支:要么执行 if 块,要么执行 else 块。不存在其他的可能性。
number = 7
if number % 2 == 0:
print("这个数字是偶数。")
else:
print("这个数字是奇数。") # 输出: 这个数字是奇数。在这里,% 运算符(取模)返回除法的余数。如果 number 除以 2 的余数是 0,则该数字是偶数;否则,它就是奇数。
3. elif 语句:处理多个条件
elif 语句("else if" 的简写)允许你按顺序检查多个条件。它提供了一种处理两种以上可能结果的方法。语法如下:
if condition1:
# 如果 condition1 为真,执行此代码
elif condition2:
# 如果 condition1 为假且 condition2 为真,执行此代码
elif condition3:
# 如果 condition1, condition2 都为假,且 condition3 为真,执行此代码
else:
# 如果所有条件都为假,执行此代码你可以根据需要编写任意多个 elif 语句。程序会按顺序检查这些条件,第一个计算结果为 True 的条件将触发其对应的代码块执行。如果所有条件都不为 True,则执行 else 块(如果有的话)。
3.1 elif 基础示例
让我们编写一个程序,根据学生的分数决定其字母等级:
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B") # 输出: B
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")在这个例子中,条件按顺序被检查。因为 score 是 85,第一个条件 score >= 90 为 False。第二个条件 score >= 80 为 True,因此打印出 "B",随后剩下的 elif 和 else 块都会被直接跳过。
3.2 顺序非常重要
elif 条件的排列顺序极其重要。如果条件没有正确排序,你可能会得到意想不到的结果。
看下面这个例子:
temperature = 75
if temperature > 80:
print("天气很热!")
elif temperature > 60:
print("天气很温暖。") # 输出: 天气很温暖。
elif temperature > 40:
print("天气很温和。")
else:
print("天气很冷。")如果我们改变 elif 条件的顺序:
temperature = 75
if temperature > 40:
print("天气很温和。") # 输出: 天气很温和。
elif temperature > 60:
print("天气很温暖。")
elif temperature > 80:
print("天气很热!")
else:
print("天气很冷。")在第二个例子中,打印出来的是 "天气很温和。",因为第一个条件 temperature > 40 是 True(75 确实大于 40)。后续的 elif 条件根本不会被检查。因此,务必按照从最具体到最不具体(或反之)的顺序来排列你的条件,以确保执行正确的代码块。
3.3 综合使用 if、elif 和 else
你可以将 if、elif 和 else 结合起来创建复杂的决策结构。else 语句是可选的,但为了处理所有 if 或 elif 条件都没有被满足的情况,加上它通常是一个良好的编程习惯。
age = 12
if age < 13:
print("你是一个儿童。") # 输出: 你是一个儿童。
elif age < 20:
print("你是一个青少年。")
else:
print("你是一个成年人。")4. 嵌套条件语句
你还可以将条件语句嵌套在其他条件语句的内部。这允许你创建更复杂的决策逻辑。
x = 10
y = 5
if x > 0:
print("x 是正数。") # 输出: x 是正数。
if y > 0:
print("y 也是正数。") # 输出: y 也是正数。
else:
print("y 不是正数。")
else:
print("x 不是正数。")在这个例子中,外层的 if 语句首先检查 x 是否为正数。如果是,内层的 if 语句会继续检查 y 是否也是正数。
4.1 避免过深的嵌套
虽然嵌套是可以的,但过深的嵌套条件会使你的代码变得难以阅读和理解。通常更好的做法是使用布尔运算符(这将在后面的模块中介绍)来简化复杂的逻辑,或者将代码拆分为更小的函数。