Python 流程控制语句


流程控制语句指定计算执行的顺序。


流程控制语句分类

Python语言提供了3种类型的流程控制语句。

  • 判断语句,包含if、if-elif-else语句。
  • 循环语句,包含for、while、for-else、while-else语句。
  • 分支语句,包含break、continue、pass语句。

if语句

if语句的形式:

if 表达式1:
  语句块1
elif 表达式2:
  语句块2
}
...
else:
  语句块3

elifelse部分都是可选的。

if语句执行过程:

计算表达式1的值,如果为true,则执行语句块1,终止if语句。否则,计算表达式2的值,如果为true,则执行语句块2,终止if语句。如果表达式1表达式2都为false,则执行语句块3,终止if语句。

下面是if语句的例子。

#!/usr/bin/python

if 1 < 2:
    print('1 < 2')  # 1 < 2

i = 5;
if i < 0:
    print('i < 0')
elif 0 <= i < 5:
    print('0 <= i < 5')
else:
    print('i >= 5') # i >= 5

for语句

for语句的形式:

for 语句1 in 表达式1:
  语句2
else:
  语句3

else部分都是可选的。

for语句执行过程:

  1. 计算表达式1的值,得到的值为一个集合。
  2. 表达式1的值中,从第一个元素开始,按顺序取出一个元素做为语句1中声明的变量的值,执行语句2
  3. 如果表达式1中还有没处理完的元素,重复步骤2,否则终止for循环。
  4. 如果有else部分,并且for循环是由break语句终止的,不会执行语句3,否则for循环完成后,执行语句3

for常和range函数一起使用。range函数生成一个数字序列,第一个参数是开始数字,第二个参数是结束数字加1。如果只有一个参数,表示结束数字加1,开始数字则为0。

下面是for语句的例子。

#!/usr/bin/python

for i in [1, 2, 3]:
    print('i =', i, end=', ')   # i = 1, i = 2, i = 3,
else:
    print('\ndone')   # done

for j in [1, 2, 3]:
    if j > 2:
        break;
    print('j =', j, end=', ')   # j = 1, j = 2,
else:
    print('done2')

print('\n')
for k in range(3, 5):
    print('k =', k, end=', ')   # k = 3, k = 4, 

while语句

while语句形式:

while 表达式1:
  语句1
else:
  语句2

while语句的执行过程:

  1. 计算表达式1的值,如果为true,执行语句1;如果表达式1的值为false,终止while语句。
  2. 重复步骤1。
  3. 如果有else部分,并且while循环是由break语句终止的,不会执行语句2,否则while循环完成后,执行语句2

下面是while语句的例子。

#!/usr/bin/python
i = 3
while i > 0:
    print('i =', i, end=', ')   # i = 3, i = 2, i = 1,
    i -= 1
else:
    print('\ndone')   # done

j = 3
while j > 0:
    if j < 2:
        break;
    print('j =', j, end=', ')   # j = 3, j = 2, 
    j -= 1
else:
    print('done2')

break语句

break语句用于提前终止for和while循环。

continue语句

continue语句跳过当前这次循环,进入到下次循环。

下面是continue语句的例子:

#!/usr/bin/python

for j in [1, 2, 3]:
    if j == 2:
        continue;
    print('j =', j, end=', ')   # j = 1, j = 3, 
else:
    print('\ndone') # done

pass语句

pass语句是一个空操作,用于创建一个空的代码块。

#!/usr/bin/python

def test():
    pass

test()

class C:
    pass

print("done")   # done