Python - 控制流



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)

这将产生以下结果:

Passed with distinction

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'))

这将产生以下结果:

Vowel alphabet
Simple alphabet
Vowel alphabet

循环或迭代语句

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

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

looping_works

如果控件无条件返回,它会形成一个无限循环,这是不希望的,因为代码的其余部分永远不会被执行。

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

for 循环

for 循环迭代任何序列的项目,例如 list、tuples 或 string 。

下面是一个使用 For 循环遍历 Python 中的数组的示例:


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

这将产生以下结果:

one
two
three

while 循环

while 循环只要给定的布尔表达式为 true,就会重复执行 target 语句。

下面是一个使用 While 循环在 Python 中打印前 5 个数字的示例:


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

这将产生以下结果:

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: 0
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 : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n