Python 教程 - 决策构造

Jinku Hu 2023年1月30日 2019年12月26日
  1. if…else 声明
  2. if 声明
  3. if...else 声明
  4. if...elif...else 声明
  5. 嵌套 if 语句
Python 教程 - 决策构造

在本节中,你将学习 Python 编程中的决策构造。最常用的决策构造是 if…else 构造。

if…else 声明

当你有两个语句块并且你只想根据某些条件执行一个语句块时,将使用 if…else 语句。在 Python 编程中,大多数 if…elif…else 都用作决策构造。

if 声明

if 声明中,你只有一个语句块,并且仅当条件为 True 时才执行此块,当条件为 False 时,将忽略该语句块。

以下是 Python 中 if 声明的语法:

if condition:
    statement(s)

Python 中的 if 语句主体不是用大括号括起来,而是使用缩进。主体的末端由第一条不在同一个缩进水平的行来决定。

if 声明示例

考虑以下 if 使用语句的示例:

a = 24
if a % 2 == 0:
    print(a, "is an even number")
b = 23
if b % 2 == 0:
    print(b, "is an odd number")
24 is an even number

在此代码中,首先为变量 a 分配一个值,然后评估语句中的 if 条件。它通过 % 2 来检查 a 是否为偶数,也就是是否 a % 2 为零,然后控制是否打印出相应的语句。

然后 b 分配一个奇数 23if 语句中的条件不是 True,因此 print(b, "is an odd number") 将不会执行。

if...else 声明

以下是 if...else 语句的语法:

if condition:
    block of statements
else:
    block of statements

if...else 中,如果 if 条件为 True,则执行相应的语句块,否则将执行 else 下的语句块。

if...else 声明示例

考虑下面 if...else 的代码:

a = 44
if a%2==0:
    print(a, "is an even number")
else:
    print(a, "is an odd number")
44 is an even number

如果 a 是偶数,它将打印 a is an even number,否则将打印 a is an odd number

注意

ifelse 块不能同时执行或忽略。根据条件是否执行仅执行一个程序段 True

if...elif...else 声明

以下是 if...elif...else 语句的语法:

if condition:
    block of statements
elif condition:
    block of statements
else:
    block of statements

elif 代表 else if 它可以在此 if..elif..else 构造中多次使用。

if 条件为 False 时,将检查 elif 条件等等。当所有的 if 条件和 elif 条件是 False 时,else 部分将被执行。

注意

if...elif...else 仅能执行一个程序段。

if...elif...else 声明示例

考虑下面的代码,其中我们使用了用于检查多个条件的 if...elif...else 语句:

a = -34
if a > 0:
    print("Number is Positive")
elif a < 0:
    print("Number is Negative")
else:
    print("Number is zero")
Number is Negative

嵌套 if 语句

在 Python 中,你可以在 if 内部包含另一个 if 语句,这被称为嵌套 if 语句。

你可以嵌套任何类型的 if 语句任意多次。但是在程序设计语言中使用嵌套 if 结构并不是一个好习惯,因为程序的可读性会因此而变差。

嵌套 if 语句示例

在以下代码中,嵌套 if 结构用于查找最大数量:

T = 52

if T > 25:
    if T < 50:
        print("Temperature is higher than 25 but lower than 50")
    else:
        print("Temperature is higher than 50")
else:
    if T < 0:
        print("Temperature is lower than 0")
    else:
        print("Temperature is higher than 0 but lower than 25")
Temperature is higher than 50
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn