文章目录
- 一、循环结构
- 1、for语句
- 2、while语句
- 3、break和continue语句
- 4、循环结构中的else语句
- 5、循环的嵌套
一、循环结构
最基本的复杂工作就是循环,要想写出的程序能够执行更加复杂的工作,就需要将循环问题进行实现。
1、for语句
for语句用一个循环控制器(Python中称为迭代器)来描述其语句块的重复执行方式,它的基本语法形式是:
for 变量 in 迭代器:
语句块
由关键字for开始的行称为循环的头部,语句块称为循环体。语句块需要缩进,且块中各个语句的缩进量必须相同。
语句中包含了三个部分,其中最重要的就是迭代器,而下方的语句块就是需要重复运行的部分。通常一个迭代器描述一个值序列,变量依次取得迭代器中的值序列的每一个值,然后对每个值执行一次语句块,由于每次取到的值不一定相同,因此执行语句块的效果也不一定相同。
情况1:字符串作为迭代器
字符串类型本身就是一种迭代类型,可以直接放在for语句中作为迭代器使用。
for x in "abcdefg":
print(x)
在上述for循环语句中,x作为变量,可以按顺序取到“abcdefg”中的每一个字符,反复执行语句“print(x)”,就输出了每一个字符,即最后输出的结果为“abcdefg”。
情况2:range()函数生成迭代序列
range是Python中的一个内置函数,调用这个函数就能产生一个迭代序列,因此适合放在for语句的头部,函数range有以下几种不同的调用方式:
(1)range(n),获得的迭代序列为0,1,2,…,n-1,当n<=0时序列为空。
(2)range(m,n),获得的迭代序列为m,m+1,m+2,…,n-1,当m>=n时序列为空。
(3)range(m,n,d),获得的迭代序列为m,m+d,m+2d,…,按步长d从m开始不断递增,直至最接近但不包括n的等差值,当d小于0时递减。
2、while语句
在for语句中,给出了迭代器,即重复的变量是给定了范围的,但是当范围不明确,而存在着清晰的循环条件时,可以采用while语句。
while语句中,用一个表示逻辑条件的表达式来控制循环,当条件成立的时候反复执行循环体,直至条件不成立时循环结束。
while 条件表达式:
语句块
即每次循环首先判断条件表达式是否成立,如果条件表达式成立的话,执行下面的语句块,反之循环结束。
3、break和continue语句
for语句和while语句都是通过头部控制循环的执行,一旦进入循环体,就会完整地执行一遍其中的语句,然后再重复。实际中,我们也会遇到一些只执行循环体中的部分语句就结束循环或者立刻转去做下一次循环的情况,那么我们就需要用到循环控制语句break和continue。
break语句的作用是立刻结束整个for循环,continue语句的作用是结束这一轮的循环,程序跳转到循环头部,根据头部的要求继续。
在使用break时,当i为10的倍数,则停止循环,即输出数字为1到9,在使用continue时,当i为10的倍数。则回到循环头部,不执行下面的print语句,即不输出10和10的倍数。
4、循环结构中的else语句
在循环结构中else语句不是必须的,当循环条件不成立或序列遍历结束时,代码中有else语句则执行else语句,大部分因为break语句导致循环提前结束时,则不会执行else语句。else语句属于for循环结构的一部分,是对for循环由于序列遍历结束而自然退出时所做的处理。
for 变量 in 迭代器:
语句块1
else:
语句块2
5、循环的嵌套
在一个循环体中包含一个完整的循环结构,成为循环的嵌套,这种结构称为多重循环结构,内层循环中还可以包含新的循环,形成新的多重循环结构。
for 变量1 in 迭代器1:
for 变量2 in 迭代器1:
语句块
例:找出200以内的素数,如果一个正整不能被小于它的任意正整数整除,则其为素数。