Chapter 4 流程控制

流程控制是指程序执行的顺序控制,包括顺序结构、选择结构和循环结构。

4.1 顺序结构

顺序结构是最简单的程序结构,它是指程序中的语句按照顺序执行,每个语句执行完毕后,再执行下一个语句。

4.2 选择结构

选择结构是指程序执行时,根据条件的不同,选择不同的执行路径。

4.2.1 if 语句

if 语句是最简单的选择结构,它的语法格式如下:

if condition:
    statement
elif another condition:
    another statement
else:
    final statement

if 语句的执行流程如下:

  1. 首先计算 condition 的值,如果为 True,则执行 statement 语句块,然后结束 if 语句的执行;如果为 False,则计算 another condition 的值,如果为 True,则执行 another statement 语句块,然后结束 if 语句的执行;如果为 False,则执行 final statement 语句块,然后结束 if 语句的执行。
  2. 如果 if 语句中只有一个条件,没有 elifelse 语句,则当 conditionTrue 时执行 statement 语句块,当 conditionFalse 时,不执行任何语句。
  3. 如果 if 语句中只有一个条件,没有 elif 语句,但有 else 语句,则当 conditionTrue 时执行 statement 语句块,当 conditionFalse 时,执行 final statement 语句块。

4.2.2 match 语句

match 语句是 Python 3.10 新增的选择结构,它的语法格式如下:

match value:
    case condition:
        statement
    case another condition:
        another statement
    case _:
        final statement

这很容易理解,我们举个例子:

lang = input("Enter your language: ")

match lang:
    case "Python":
        print("You are learning Python")
    case "Java":
        print("You are learning Java") 
    case "C++":
        print("You are learning C++")
    case _:
        print("You are learning something else")

这个例子中,我们使用 match 语句来判断用户输入的语言,如果是 PythonJavaC++,则输出相应的提示,否则输出 You are learning something else

4.3 循环结构

循环结构是指程序执行时,根据条件的不同,重复执行某段代码。

4.3.1 while 循环

while 循环是一种循环结构,它的语法格式如下:

while condition:
    statement

while 循环的执行流程如下:

首先计算 condition 的值,如果为 True,则执行 statement 语句块,然后再次计算 condition 的值,如果为 True,则继续执行 statement 语句块,直到 condition 的值为 False,则结束 while 循环的执行。

4.3.2 for 循环

for 循环是另一种循环结构,它的语法格式如下:

for item in iterable:
    statement

for 循环的执行流程如下:

4.3.3 提前退出循环

4.3.3.1 break

4.3.3.2 continue

4.4 什么是 iterable

iterable 是指可以被迭代的对象,它可以是一个序列,也可以是一个生成器,也可以是一个迭代器。

4.4.1 序列

序列是指可以通过索引来访问元素的对象,它包括字符串、列表、元组、字节序列、字节数组、range 对象等。

4.4.2 生成器

生成器是指使用 yield 关键字的函数,它可以生成一个生成器对象。

4.4.3 迭代器

迭代器是指实现了 __iter__()__next__() 方法的对象,它可以生成一个迭代器对象。