Python中的循环控制(第2节)


在Python中,循环控制允许你多次执行相同的代码块,用于解决某些重复的代码工作,使需要重复的代码只写一遍即可。循环也是各类编程的精髓,脱离了循环,代码将失去意义;学会了循环,能省出大量的时间。Python提供了两种主要的循环结构:while循环for循环

1、while循环

Python中最简单的循环语句是while循环,主要用于不确定循环的次数时,和if语句一样,根据条件测试语句进行判断,只有条件测试的结果是“True”时才会执行“while”循环体内的语句。

while循环语法格式:

while 条件语句:
    执行代码1
    执行代码2
    ......

动手练一练:

a = 1
while a <= 5:
    print(a)  # 前面有四个空格的缩进,不能省略
    a += 1  # 相当于a=a+1

执行以上代码,输出结果为:

1
2
3
4
5

上面的例子中,执行的结果是打印出1~5的数字。“a += 1”可以理解为“a=a+1”,变量a的初始值为1,所以满足测试条件“a <= 5”,开始第一次循环,执行“while”循环体内的语句,打印出数字1,并执行语句“a=1+1”。这时a已经等于2,仍然满足测试条件“a <= 5”,继续执行“while”循环体内的语句,打印出数字2,第二次循环结果为“a=2+1”,以此类推,直到a=6时,条件测试“a <= 5”的结果是“False”时,退出循环条件。注意不能省略“a += 1”语句,否则变量“a”永远小于5,while语句中的“a <= 5”条件永远是“True”,那么“print(a)”会一直执行下去,最终嵌入无限循环或者死循环。

2、for循环

原本Python中只有一个while循环的,但为什么又有了for循环呢?为了遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各种元素,for循环便因此而生。for循环是Python中最常用的循环语句之一。

for循环语法格式:

for 变量 in 序列
    语句1
    语句2
    .......

for循环语句用于遍历一个序列(如字符串、列表、元组、字典、集合等)中的每个元素,依次执行相应的代码块,直到遍历完所有元素为止。例如:

动手练一练:

for a in [4, 5, 6, 7]:
    print(a)    # 前面有四个空格的缩进,不能省略

执行以上代码,输出结果为:

4
5
6
7

上面的例子中,利用for循环语句让变量“a”逐一遍历“in”后面列表里的每一个元素,遍历完所有元素之后结束循环,遍历的顺序为元素在列表中的顺序。

但是有一个问题,如果我们需要输出1000个数字,我们难道要写一个很长的列表,里面包含1000个元素吗?完全不必要这么麻烦,Python中内置的range()函数可以帮助我们处理此类问题。range()函数可以理解为“范围”,该函数能生成一个整数序列。后面的教程中会详细介绍,这里简单介绍range()的使用方法。

range()有两种使用方法,第一种方法是:括号中只填写一个数字,range()就会返回一个类似列表的对象,例如:

for a in range(6):
    print(a)    # 前面有四个空格的缩进,不能省略

执行以上代码,输出结果为:

0
1
2
3
4
5

上面的例子中,遍历输入range(6)的结果,可以看出range(6)实际上生成了0~5的这六个数字。

range()第二种使用方法是:括号中填入两个数字range(开始数字, 结束数字),例如:

for a in range(1, 6):
    print(a)    # 前面有四个空格的缩进,不能省略

执行以上代码,输出结果为:

1
2
3
4
5

上面的例子中,range(1, 6)即为序列1,2,3,4,5,注意这里包括开始数字1,不包括结束数字6。

同样我们可以定义步长:range(开始数字, 结束数字,步长),如果不定义步长则默认是1。例如:

for a in range(1, 6, 2):
    print(a)    # 前面有四个空格的缩进,不能省略

执行以上代码,输出结果为:

1
3
5

上面的例子中,成功输出了步长为2、从1到5的数字序列。