Python 程序控制流由各种类型的条件语句、循环和函数调用调节。默认情况下,计算机程序中的指令按顺序执行,从上到下或从头到尾。但是,这种顺序执行的程序只能执行简单的任务。我们希望该程序具有决策能力,以便它根据不同的条件执行不同的步骤。
大多数编程语言(包括 Python)都提供控制指令执行流程的功能。通常,任何编程语言中都有两种类型的控制流语句,Python 也支持它们。
决策声明
Python 程序中使用了决策语句,使它们能够根据某个布尔表达式的值来决定要执行哪组替代指令。
下图说明了决策语句的工作原理 -
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)
这将产生以下结果:
match 语句
Python 支持 Match-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'))
这将产生以下结果:
Simple alphabet
Vowel alphabet
循环或迭代语句
大多数进程需要重复执行一组指令。在编程术语中,它称为循环。如果流重定向到任何前面的步骤,则它构成一个循环,而不是下一步。
下图说明了循环的工作原理 -

如果控件无条件返回,它会形成一个无限循环,这是不希望的,因为代码的其余部分永远不会被执行。
在条件循环中,语句块的重复迭代一直持续到满足某个条件。Python 支持许多循环,例如 for 循环、while 循环,我们将在下一章中学习。
for 循环
for 循环迭代任何序列的项目,例如 list、tuples 或 string 。
例下面是一个使用 For 循环遍历 Python 中的数组的示例:
words = ["one", "two", "three"]
for x in words:
print(x)
这将产生以下结果:
two
three
while 循环
while 循环只要给定的布尔表达式为 true,就会重复执行 target 语句。
例下面是一个使用 While 循环在 Python 中打印前 5 个数字的示例:
i = 1
while i < 6:
print(i)
i += 1
这将产生以下结果:
2
3
4
5
Jump 语句
jump 语句用于通过中断程序的当前流来跳转特定语句。在 Python 中,有两个 jump 语句 break 和 continue。
break 语句
它终止当前循环并在下一个语句处恢复执行。
例以下示例演示了 break 语句的用法 -
x = 0
while x < 10:
print("x:", x)
if x == 5:
print("Breaking...")
break
x += 1
print("End")
这将产生以下结果:
x: 1
x: 2
x: 3
x: 4
x: 5
Breaking...
End
continue 语句
它跳过 program 块的执行,并将控制权返回到当前循环的开头以开始下一次迭代。
例以下示例演示了 continue 语句的用法 -
for letter in "Python":
# continue when letter is 'h'
if letter == "h":
continue
print("Current Letter :", letter)
这将产生以下结果:
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n