Skip to content

条件控制

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

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

if 语句

if 语句是最基本的条件语句,它用于判断一个条件是否为真,如果为真,则执行对应的代码块,否则,则忽略该代码块。

语法格式如下:

python
if 条件表达式:
    代码块

例如:

python
num = 10
if num > 5:
    print("num is greater than 5")
  1. 首先,判断 num 是否大于 5,由于 num 为 10,所以结果为 True,因此执行 print("num is greater than 5") 语句。
  2. 然后,程序继续执行,并没有遇到 else 语句,因此程序结束。

if...else 语句

if...else 语句是 if 语句的扩展,它在判断条件为真时执行 if 代码块,否则执行 else 代码块。

语法格式如下:

python
if 条件表达式:
    代码块1
else:
    代码块2

例如:

python
num = 10
if num > 5:
    print("num is greater than 5")
else:
    print("num is not greater than 5")
  1. 首先,判断 num 是否大于 5,由于 num 为 10,所以结果为 True,因此执行 print("num is greater than 5") 语句。
  2. 然后,程序继续执行,并没有遇到 else 语句,因此程序结束。

if...elif...else 语句

if...elif...else 语句是 if...else 语句的扩展,它可以在多个条件判断中选择执行哪个代码块。

语法格式如下:

python
if 条件表达式1:
    代码块1
elif 条件表达式2:
    代码块2
elif 条件表达式3:
    代码块3
...
else:
    代码块n

例如:

python
num = 10
if num > 5:
    print("num is greater than 5")
elif num < 5:
    print("num is less than 5")
else:
    print("num is equal to 5")
  1. 首先,判断 num 是否大于 5,由于 num 为 10,所以结果为 True,因此执行 print("num is greater than 5") 语句。
  2. 然后,程序继续执行,并没有遇到 elif 语句,因此程序结束。

嵌套条件语句

Python 允许在 if...elif...else 语句中嵌套 if...elif...else 语句,即在 if...elif...else 语句中使用另一个 if...elif...else 语句。

例如:

python
num = 10
if num > 5:
    print("num is greater than 5")
    if num > 10:
        print("num is also greater than 10")
    else:
        print("num is not greater than 10")
elif num < 5:
    print("num is less than 5")
else:
    print("num is equal to 5")
  1. 首先,判断 num 是否大于 5,由于 num 为 10,所以结果为 True,因此执行 print("num is greater than 5") 语句。
  2. 然后,判断 num 是否大于 10,由于 num 为 10,所以结果为 False,因此执行 print("num is not greater than 10") 语句。
  3. 最后,程序继续执行,并没有遇到 else 语句,因此程序结束。

match...case

3.10 版新增了一个新的语法 match...case,它可以用来替代多个 if...elif...else 语句。

python
match 变量:
    case 值1:
        代码块1
    case 值2:
        代码块2
    case 值3:
        代码块3
    ...
    case 值n:
        代码块n
    case _:
        代码块默认
  1. 首先,判断 变量 是否等于 值1,由于 变量值1,所以结果为 True,因此执行 代码块1 语句。
  2. 然后,程序继续执行,并没有遇到 case 语句,因此程序结束。
  3. case_ 语句是一种特殊的 case 语句,它用于匹配所有其他的值。类似于 default 语句,它必须放在最后,并且只能有一个。

例如:

python
num = 10
match num:
    case 10:
        print("num is 10")
    case 5:
        print("num is 5")
    case _:
        print("num is not 10 or 5")