Bootstrap

Python条件语句:if-else

在 Python 中,if-else 语句是用来基于条件执行不同代码块的一种控制流结构。它允许程序根据某个条件的结果(真或假)来决定执行哪一部分代码。

If 语句

if 语句使用 if 关键字后跟一个条件。当条件为真时,执行 if 语句体内的代码;否则,如果存在的话,执行 if 语句之后的代码。

语法
if condition:
    # 如果条件为真,则执行这里的代码

以下是如何 if 语句工作的完整流程:

  1. 测试表达式(条件)首先被评估。
  2. 如果表达式为真(非零或非空),则执行 if 语句体内的代码。
  3. 如果表达式为假(零或空),则跳过 if 语句体内的代码,执行 if 语句之后的代码。
  4. 不管条件真假,位于 if 语句之外的代码都会默认被执行。

为了更好地理解这一点,我们来看例子:

当条件为真时的情况

在下面的代码中,因为 a 大于 50,所以两个 print 语句都将被执行:

a = 60

if a > 50:
    print("a is greater than 50.")  # 条件为真时执行
    print("This is also inside the if block.")  # 条件为真时执行

print("This is outside the if block.")  # 这行代码总是会被执行
当条件为假时的情况

在下面的代码中,因为 20 不大于 50,所以 if 块内部的代码不会被执行,而 if 块外部的代码将会被执行。

a = 20

if a > 50:
    print("This is the if body")  # 如果 a 大于 50,这行代码会被执行

print("This is outside the if block")  # 这行代码总是会被执行

If-Else 语句

if-else 语句用于根据给定条件执行两个不同的代码块:一个是条件为真的情况下的代码块,另一个是条件为假的情况下的代码块。如果条件为真,则执行 if 块中的代码;如果条件为假,则执行 else 块中的代码。

语法
if condition:
    # 如果条件为真,则执行这里的代码
else:
    # 如果条件为假,则执行这里的代码

值得注意的是,Python 使用缩进来定义代码块的范围。其他编程语言通常使用花括号 {} 来达到相同的目的。

工作流程

下面是 if-else 语句的工作流程:

  1. 首先,测试表达式被评估。
  2. 如果测试表达式为真,那么 if 块中的语句将被执行。
  3. 接下来,if 块之后的语句将被执行。
  4. 如果测试表达式为假,那么 else 块中的语句将被执行。
  5. 然后,if-else 结构之后的语句将被执行。
示例

下面是一个示例,展示了 if-else 语句是如何工作的:

# 设定一个变量 i
i = 4

# 检查 i 是否能被 2 整除
if i % 2 == 0:
    print("The value of i is even.")
else:
    print("The value of i is odd.")

# 继续执行此后的代码
print("This is executed no matter the value of i.")

在这个例子中,如果 i 的值能被 2 整除(即 i 是偶数),那么 “The value of i is even.” 将会被打印出来;如果 i 不能被 2 整除(即 i 是奇数),那么 “The value of i is odd.” 将会被打印出来。最后一条 print 语句无论 i 的值是什么都会被执行。

嵌套的 If 语句

当一个 if 语句存在于另一个 if 语句内部时,这种情况被称为嵌套的 IF 语句。嵌套 IF 语句适用于需要多次过滤同一变量的情况。

语法
if condition1:
    # 如果 condition1 为真,则执行这里的代码
    
    if condition2:
        # 如果 condition2 为真,则执行这里的代码
        
    # condition2 结束的地方

# condition1 结束的地方

在嵌套的 IF 语句中,你应当始终注意缩进来定义每个语句的作用域。理论上,你可以根据需要嵌套多层 if 语句,但这会使程序效率降低,并且可能导致代码难以阅读和理解。因此,应尽量减少嵌套 IF 语句的使用。

工作流程

下面的工作流程图展示了嵌套 IF 语句是如何工作的:
在这里插入图片描述

  1. 首先评估 test-expression-1
  2. 如果 test-expression-1 为真,则执行 if 块内的代码。
  3. 在这个 if 块内部,可能会有另一个 if 语句,它评估 test-expression-2
  4. 如果 test-expression-2 为真,则执行其对应的代码块。
  5. 如果 test-expression-2 为假,则跳过其对应的代码块,并继续执行 if 块内的其余代码。
  6. 如果 test-expression-1 为假,则跳过整个 if 块,并执行 if 块之后的代码。
示例

假设我们有一个数字,我们要检查这个数字是否大于 25。如果小于 25,我们将检查它是否是奇数或偶数。如果大于 25,我们将打印出该数字大于 25。

# 定义一个数字
number = 23

# 第一层 if 语句
if number < 25:
    # 如果 number 小于 25,则执行这里
    
    # 第二层 if 语句,检查是否为偶数
    if number % 2 == 0:
        print("The number is less than 25 and is even.")
    else:
        print("The number is less than 25 and is odd.")
else:
    # 如果 number 大于等于 25,则执行这里
    print("The number is greater than 25.")

if-elif-else 语句

if-elif-else 语句是一种扩展的条件控制结构,它允许你在多个条件之间进行选择。当 if 条件为假时,程序会检查下一个 elif(即“else if”)条件。如果所有的 elif 条件都为假,则执行 else 块中的代码。

语法
if condition1:
    # 如果 condition1 为真,则执行这里的代码
elif condition2:
    # 如果 condition1 为假并且 condition2 为真,则执行这里的代码
elif condition3:
    # 如果 condition1 和 condition2 为假并且 condition3 为真,则执行这里的代码
else:
    # 如果所有条件都为假,则执行这里的代码
工作流程

下面是一个流程图,展示 if-elif-else 结构是如何工作的:
在这里插入图片描述

  1. 首先检查 Test Expression1
  2. 如果 Test Expression1 为真,则执行 if 块中的代码。
  3. 如果 Test Expression1 为假,则控制权转移到下一个 Test Expression2
  4. 如果 Test Expression2 为真,则执行 elif1 块中的代码。
  5. 如果 Test Expression2 为假,则检查 Test Expression3
  6. 如果 Test Expression3 为真,则执行 elif2 块中的代码。
  7. 如果 Test Expression3 也为假,则执行 else 块中的代码。
  8. 之后,程序将继续执行 if-elif-else 结构之后的代码。
示例

下面的程序使用 if-elif-else 结构来检查一个字母是元音还是辅音。

letter = 'a'

if letter.lower() in ['a', 'e', 'i', 'o', 'u']:
    print("The letter is a vowel.")
elif letter.isalpha():
    print("The letter is a consonant.")
else:
    print("The input is not a letter.")

在这个例子中:

  • 如果 letter 是元音(‘a’, ‘e’, ‘i’, ‘o’, ‘u’),则输出 “The letter is a vowel.”
  • 如果 letter 是字母但不是元音,则输出 “The letter is a consonant.”
  • 如果 letter 不是字母,则输出 “The input is not a letter.”

总结

希望这篇博客帮助你理解了 Python 中的条件语句。你学习了 if、else、if-elif-else 以及嵌套的 IF 语句,条件语句是编程中非常基础且重要的部分,它们让你的程序可以根据不同的条件作出不同的响应,从而实现更复杂的逻辑。

;