条件语句
条件语句用于根据条件控制程序执行流程,是实现决策逻辑的基本方式之一。
if else 语句
if-else 结构是编程中最常见的条件结构。它允许基于一个或多个条件选择执行相应的代码块。
只有 if 的结构
最简单的条件结构是只有 if
的语句,如果条件为 True,则执行 if
下面的缩进代码块。使用方式如下:
if condition:
# 如果 condition 为 True,则执行这里的代码
与 C 语言等其他编程语言不同,Python 的 if-else 结构中,条件和代码块均无需括号包裹,而是用冒号和缩进表示。条件后接冒号,其下为统一缩进的代码块。比如:
x = 5
if x > 0:
print("条件满足了") # x > 0 时执行
print("x 是正数") # 这两行有相同缩进,属于同一代码块
带有 else 的结构
有时候,要让程序在条件不满足的时候,执行另一段代码,这就需要 if
、else
都用上了。使用方式如下:
if condition:
# 如果 condition 为 True,则执行这里的代码
else:
# 如果 condition 为 False,则执行这里的代码
比如:
x = -5
if x > 0:
print("x 是正数")
else:
print("x 是非正数")
需要注意的是,if
和 else
下的代码块不得为空。有时候调试代码,可能希望暂时把 if
分支的代码块都注释掉,这样会导致程序出错。如果什么都不需要执行,可以使用 pass
关键字,它是一个占位语句,实际上什么都不做,比如:
x = -5
if x > 0:
pass
# print("x 是正数") 暂时不要执行
else:
print("x 是非正数")
带有 elif 的结构
有时需检查多个条件,并在满足其一时执行对应代码块。我们可以嵌套的 if
else
实现所需功能,比如:
x = 0
if x > 0:
print("x 是正数")
else:
if x < 0:
print("x 是负数")
else:
print("x 是零")
这样的嵌套 if
else
会导致程序缩进层次过多,降低可读性。为此,可以使用 elif
关键字简化嵌套结构。用法如下:
if condition1:
# 如果 condition1 为 True,则执行这里的代码
elif condition2:
# 如果 condition1 为 False 且 condition2 为 True,则执行这里的代码
else:
# 如果上述所有条件都为 False,则执行这里的代码
比如:
x = 0
if x > 0:
print("x 是正数")
elif x < 0:
print("x 是负数")
else:
print("x 是零")
多重条件
有时候,需要在多个条件都满足的情况下才做一件事,为了避免嵌套的 if else 语句,我们可以先使用逻辑运算符 (and, or, not) 组合多个条件,然后再使用 if else 结构,比如:
age = 25
if age >= 18 and age <= 35:
print("该年龄段的人是青年")
条件表达式
条件表达式,也经常被称为三元运算符或三元表达式,因为它需要三个输入值,分别是选择条件、条件为真时返回的值、条件为假时返回的值。条件表达式是 if else 语句的简化形式,用于在单行中进行简单的条件评估。它的基本格式是:
value_if_true if condition else value_if_false
当 condition 为真时,表达式的结果为 value_if_true;当条件为假时,结果为 value_if_false。
让我们通过几个例子来深入了解一下条件表达式的使用:
# 判断数字的正负
num = 10
label = "负数" if num < 0 else "非负数"
print(label) # 输出: 非负数
# 找出两个数中的较大值
a, b = 5, 8
max_value = a if a > b else b
print(max_value) # 输出: 8
# 根据年龄判断是否成年
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 输出: 成年
有上面的例子可以看出,条件表达式能够在一行代码中就评估条件,这可以使代码更简洁。
语句在 Python 中是一个完整的句子,它不能再成为其它语句或表达式的一部分了。if 语句是不可以在放在其它语句中的,但条件表达式是表达式,而非语句,因此式可以放在一些无法放置 if else 语句的地方。比如,可以把条件表达式放在列表推导式中。
虽然条件表达式很有优势,但如果需要判断的条件太过复杂,可能会导致代码难以阅读,这时候使用普通的 if else 语句可能更有可读性。