控制流语句的开始部分通常是“ 条件”, 接下来是一个代码块,称为“子句”。在开始学习具体的 Python 控制流语句之前, 我们先了解下条件和代码块。

条件

       我们所学习的布尔表达式可以看做是条件,它和表达式是一回事。条件的求值总是为一个布尔值, True 或 False。控制
流语句根据条件是 True 还是 False,来决定具体执行那个语句。 几乎所有的控制流语句都使用条件。

代码块

       我们把几行代码放一起组成一个代码块实现一个功能,Python中根据代码行缩进来判断代码块的开始和结束。代码行缩进遵循以下几个规则。

1、代码行缩进增加时表示代码块开始。

2、代码块可以嵌套,即代码中可以包含其他代码块。

3、缩进减少为零, 或减少为外面包围代码块的缩进, 代码块就结束了。

       代码行缩进增加了代码的易读性,方便于我们更好的阅读和理解代码的功能。

一、判断语句

1、if语句

        最常见的控制流语句是 if 语句。 if 语句的子句(也就是紧跟 if 语句的语句块),将在语句的条件为 True 时执行。如果条件为 False,子句将跳过。

在 Python中, if 语句包含以下部分:

  • if 关键字;
  •  条件(即求值为 True 或 False 的表达式);
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 if 子句)。
list1=[1,2,3,4,5]

if 1 in list1:
	print('1是list1的元素')
else:
	print('1不是list1的元素')

#打印结果	
1是list1的元素

代码中if语句的条件为true所以执行if的子句,执行print函数。 

 2、else语句

     if 子句后面有时候也可以跟着 else 语句。只有 if 语句的条件为 False 时, else子句才会执行。else 语句不包含条件, 在代码中, else 语句中包含下面部分:

  • else 关键字;
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 else 子句)。
list2=[12,13,14,15,16]

if 11 in list2:
	print(list2)
else:
	list2.append(11)
        print(list2)
        print(list2.sort())

#输出结果
[12, 13, 14, 15, 16, 11]
[11, 12, 13, 14, 15, 16]

if语句的条件为false所以执行else语句的子句,将11追加到list2后打印list2和将list2排序后打印。

3、elif语句

      elif总是跟在 if 或另一条 elif 语句后面。它提供了另一个条件,仅在前面的条件为 False 时才检查该条件。在代码中, elif 语句总是包含以下部分:

  • elif 关键字;
  • 条件(即求值为 True 或 False 的表达式);
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 elif 子句)。
#coding:utf-8
name = 'xiaogang'
age = 11
if name == 'xiaoming':
    print('Hi, xiaoming.')
elif age < 12:
    print('You are not xiaoming, kiddo.')
else:
    print('You are neither Alice nor a little kid.')

二、循环语句

1、循环控制语句

在学习循环语句之前我们又必须要先了解下几个循环控制语句,循环控制语句对循环至关重要。

1)break语句

在语句块执行过程中终止循环,并且跳出整个循环。

#coding:utf-8
str1 = 'hello'
for letter in str1:
    if letter =='l':
        break
    print('当前字符:',letter)

#输出结果:
当前字符: h
当前字符: e

2)continue语句

#coding:utf-8
str1 = 'hello'
for letter in str1:
    if letter =='l':
        continue
    print('当前字符:',letter)

#输出结果:
当前字符: h
当前字符: e
当前字符: o

在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

3)pass语句

pass是空语句,是为了保持程序结构的完整性。

#coding:utf-8
str1 = 'hello'
for letter in str1:
    if letter =='l':
        pass
        print('pass语句')
    print('当前字符:',letter)

#输出结果
当前字符: h
当前字符: e
pass语句
当前字符: l
pass语句
当前字符: l
当前字符: o

2、循环语句

1)while循环语句

使用while循环可以让一段代码块一遍又一遍的执行,只要 while 语句的条件为 True, while 子句中的代码就会执行。在代码中, while 语句总是包含下面几部分:

  • 关键字;
  • 条件(求值为 True 或 False 的表达式);
  • 冒号;
  • 从新行开始,缩进的代码块(称为 while 子句)。
#coding:utf-8
i=1
sum1=0
while i<=100:
    sum1=i+sum1
    i += 1
print(sum1)

#输出结果
5050

       在 while 循环中, 条件总是在每次循环开始执行时进行检查,如果条件为 True, 子句就会执行,当下次循环开始是然后, 再次检查条件。当条件第一次为 False时, while 子句就跳过。

2) for循环语句

      while循环语句只要条件为True就一直会循环执行,但是在实际应用中你想让一个代码块执行固定次数就可以用for 循环语句和 range()函数来实现,当然不使用range()也可以实现for()循环。for循环语句结合range()函数在代码中总是包含以下部分:

  • for 关键字;
  • 一个变量名;
  • in 关键字;
  • 调用 range()方法,最多传入 3 个参数;
  • 冒号;
  • 从下一行开始,缩退的代码块(称为 for 子句)。
#coding:utf-8
'''有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?'''
total = 0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if((i!=j)and(i!=k)and(j!=k)):
                print(i,j,k)
                total += 1
print(total)

#输出结果
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2
24

while和for循环都可以进行嵌套使用已达到我们想要实现的功能,如上例就用到了for循环的嵌套。