Python - 控制流



Python 程序控制流由各种类型的 条件语句循环函数 调用来控制。默认情况下,计算机程序中的指令按顺序执行,从上到下,或从开始到结束。但是,此类顺序执行的程序只能执行简单的任务。我们希望程序具有决策能力,以便根据不同的条件执行不同的步骤。

大多数编程语言,包括 Python,都提供了控制指令执行流程的功能。通常,任何编程语言中都有两种类型的控制流语句,Python 也支持它们。

决策语句

决策语句用于 Python 程序中,使它们能够根据某个布尔表达式的值来决定要执行哪个备选指令组。

下图说明了决策语句的工作原理:

decision making statements

if 语句

Python 提供 if..elif..else 控制语句作为决策的一部分。它由三个不同的块组成,分别是 if 块、elif(else if 的缩写)块和 else 块。

示例

以下是一个简单的示例,它使用了 if..elif..else。您可以尝试使用不同的分数运行此程序并验证结果。

marks = 80 
result = ""
if marks < 30:
   result = "Failed"
elif marks > 75:
   result = "Passed with distinction"
else:
   result = "Passed"

print(result)

这将产生以下结果

Passed with distinction

match 语句

Python 支持 Match-Case 语句,它也可以用作决策的一部分。如果某个模式与表达式匹配,则该 case 下面的代码将执行。

示例

以下是一个简单的示例,它使用了 match 语句。

def checkVowel(n):
   match n:
      case 'a': return "Vowel alphabet"
      case 'e': return "Vowel alphabet"
      case 'i': return "Vowel alphabet"
      case 'o': return "Vowel alphabet"
      case 'u': return "Vowel alphabet"
      case _: return "Simple alphabet"
print (checkVowel('a'))
print (checkVowel('m'))
print (checkVowel('o'))

这将产生以下结果

Vowel alphabet
Simple alphabet
Vowel alphabet

循环或迭代语句

大多数流程都需要重复执行一组指令。在编程术语中,这称为循环。如果流程不是指向下一步,而是重定向到任何前面的步骤,则构成一个循环。

下图说明了循环的工作原理:

looping_works

如果控制无条件地返回,则会形成一个无限循环,这并不理想,因为其余代码将永远不会执行。

在条件循环中,语句块的重复迭代会一直持续到满足某个条件为止。Python 支持许多循环,例如 for 循环、while 循环,我们将在接下来的章节中学习。

for 循环

for 循环 迭代任何序列(如列表、元组或字符串)的元素。

示例

以下是一个示例,它使用 For 循环遍历 Python 中的数组

words = ["one", "two", "three"]
for x in words:
  print(x)

这将产生以下结果

one
two
three

while 循环

while 循环 重复执行目标语句,只要给定的布尔表达式为真。

示例

以下是一个示例,它使用 While 循环在 Python 中打印前 5 个数字

i = 1
while i < 6:
  print(i)
  i += 1

这将产生以下结果

1
2
3
4
5

跳转语句

跳转语句用于通过中断程序的当前流程来跳转到特定语句。在 Python 中,有两个跳转语句 breakcontinue

break 语句

它终止当前循环并在下一条语句处恢复执行。

示例

以下示例演示了 break 语句的使用:

x = 0

while x < 10:
    print("x:", x)
    if x == 5:
        print("Breaking...")
        break
    x += 1

print("End")

这将产生以下结果

x: 0
x: 1
x: 2
x: 3
x: 4
x: 5
Breaking...
End

continue 语句

它跳过程序块的执行并将控制权返回到当前循环的开头以开始下一次迭代。

示例

以下示例演示了 continue 语句的使用:

for letter in "Python":
    # continue when letter is 'h'
    if letter == "h":
        continue
    print("Current Letter :", letter)

这将产生以下结果

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
广告