1、分类 ##
在Python中,有两种循环语句,分别是: while 语句 和 for 语句
1.1 问题引入
输入一个整数n 打印 : 这是第n行
在不用循环语句的情况下,我们在需要执行重复多次的程序的时候的代码可能是下面这样的,例如输出十条”我喜欢Python”:
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print("我喜欢Python!")
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
或者:
print(1,2,3,4,5,6,7,8,9,10)
但是使用循环语句来解决类似的问题就会简单得多,代码也会更加整洁,用while循环举例:
i = 0
while i<=10:
print("我喜欢Python!")
i+=1
或者
i = 0
while i<=10:
print(i)
i+=1
是不是简单得多了呢?下面将详细介绍while语句和for语句,熟练的掌握循环语句将会使我们能够很轻松的解决如上类问题,代码也会更加的地简洁、规范。
2、while语句
2.1 语法:
while 真值表达式:
语句块1
else
语句块2
2.2 说明:
·先判断真值表达式
·为True执行语句块1,再返回第一步
·为False执行语句块2,然后结束while的执行
·else子句的部分可以省略(同if类似)
·while 循环结构为1条语句
2.3 示例1:
i=1
a=20
while i<=a:
print("%4d" %i,end="") # 满足条件i<a,输出i,不换行
if i%5 == 0:
print("") # 如果 i 除 5 余 0 就换行
i=i+1 循环变量自增
输出如下:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
2.4 示例2:
a=10
while a>0:
print(a,end = " ")
a-=1
输出如下:
10 9 8 7 6 5 4 3 2 1
2.5 示例3:
i=0
while i<10.0:
print("%.1f"%i,end=" ")
i += 0.5
输出如下:
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5
2.6 while语句注意事项:
·要控制循环真值表达式的值来防止死循环
·通常用真值表达式的循环变量来控制循环条件
·通常在循环语句块内改变循环变量来控制循环次数和变量zouxiang
2.7 while语句的嵌套
while语句本身是语句,和其他语句一样,可以嵌套到任何复合语句中
2.7.1语法格式:
while 真值表达式1:
...
while 真值表达式2:
...
else:
...
else:
...
2.7.2 举例,利用while循环嵌套实现九九乘法表
i = 1
while i<10:
j = 1
while j<=i:
print("%d*%d=%2d" %(j,i,j*i),end = ' ')
j+=1
print()
i+=1
输出如下:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
3、for语句
3.1作用:用来遍历可迭代对象的数据元素,可迭代对象是指能依次获取数据元素的对象
·可迭代对象包括:
字符串 str
列表 list
元组 tuple
3.2 for 语法:
for 循环变量 in 可迭代对象:
语句块1
else:
语句块2
3.3 说明:
当循环变量在可迭代对象范围内的时候执行语句块1,当不符合条件的时候执行else语句,else语句可以省略
3.4 示例1,循环输出1~10:
L = [1,2,3,4,5,6,7,8,9,10]
for i in L:
print(i,end=' ')
或者:
for i in range(1,11):
print(i,end=' ')
输出如下:
1 2 3 4 5 6 7 8 9 10
3.5 for语句的循环嵌套
3.5.1 语法:
for 循环变量1 in 可迭代对象1:
语句块1
for j in 可迭代对象2:
语句块2
3.5.2 示例,用for语句循环嵌套实现九九乘法表:
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d" % (j, i, j * i), end=' ')
print()
输出如下:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4、range()函数
4.1 语法格式:
range(stop) 用来生成 0 ~ stop - 1 区间内的整数
range(start,stop[,step])
用来生成start~stop-1区间内的整数,每次生成后整数移动step,step默认为1
4.2 作用:
用来创建一个生成一系列证书的可迭代对象(也叫整数序列生成器)
4.3 说明:
range返回的对象可以用for语句来进行依次迭代访问
4.4 示例:
>>>range(4) # 0 1 2 3
>>>range(4,0) # None
>>>range(1,10,2) # 1 3 5 7 9
循环嵌套中的九九乘法表
4.5 range函数的注意事项:
在range(start,stop[,step])中,step 的 符号应该和 start-stop 的符号保持一致,否则返回为空
例如:
range(1,5,1) # 1 2 3 4
range(5,1,-1) # 5 4 3 2
range(1,10,-1) # None
range(10,1,1) # None
例如:
for x in range(4, 0):
print(x)
print("x绑定",x)
# 因为range(4,0) 返回为空,所以输出为空
5、break 语句
5.1 作用:用于循环语句(while,for)中,终止当前循环语句的执行
5.2 语法:
·当break语句执行后,此循环语句break之后的语句将不在执行
·break语句通常 和if 语句组合使用
·break语句终止循环时 else子句的语句将不会执行
·break语句只能种终止当前循环语句的执行, 如果有循环嵌套时,不会跳出嵌套的外层循环
5.3 示例:
for i in range(1,10):
if i==6:
break # 如果 i = 6,则退出循环
print(i,end = ' ')
输出如下:
1 2 3 4 5
6、continue语句
6.1 作用: 用于循环语句中,常和if语句连用符合条件执行continue语句,不再执行本次循环,重新开始一次新的循环
6.2 说明:
·在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件
·在for语句中执行continue语句,将会从可迭代兑现中取下一个元素,绑定变量后在进行循环
6.3 示例:
for i in range(1,10):
if i%2==1: # 输出 1~10 内的偶数
continue
print(i,end = ' ')
输出如下:
2 4 6 8
7、死循环
死循环是指条件一直成立的循环,使程序不能够正常进行
死循环的else语句永远不会执行
# 例如:
i = 1
while i <10:
print(i)
# 因为缺少循环变量的值增长赋值,导致死循环,不停的输出1,程序无法终止。