四、程序的控制结构
4.3 程序的循环结构
- 遍历循环
- 无限循环
- 循环控制保留字
- 循环的高级用法
遍历循环
遍历某个结构形成的循环运行方式
for <循环变量> in <遍历结构>:
<语句块>
- 由保留字for和in组成,完整遍历所有元素后结束
- 每次循环,所获得元素放入循环变量,并执行一次语句块
遍历循环的应用
- 计数循环(N次)
- 计数循环(特定次)
- 字符串遍历循环
- 列表遍历循环
- 文件遍历循环
计数循环(N次)
for i in range(N):
<语句块>
- 遍历由range()函数产生的数字序列,产生循环
for i in range(5):
print("hello:",i)
>>>
hello: 0
hello: 1
hello: 2
hello: 3
hello: 4
计数循环(特定次)
for i in range(M,N,K):
<语句块>
- 遍历由range()函数产生的数字序列,产生循环
for i in range(1,6,2):
print("hello:", i)
>>>
hello: 1
hello: 3
hello: 5
字符串遍历循环
for c in s:
<语句块>
- s是字符串,遍历字符串每个字符,产生循环
for c in "Python123":
print(c, end = ',')
>>> P,y,t,h,o,n,1,2,3,
列表遍历循环
for item in ls:
<语句块>
- ls是一个列表,遍历其每个元素,产生循环
for item in ["Py", 123, 456]:
print(item, end = ',')
>>> Py,123,456,
文件遍历循环
for line in fi:
<语句块>
- fi是一个文件标识符,遍历其每行,产生循环
无限循环
由条件控制的循环运行方式
while <条件>:
<语句块>
- 反复执行语句块,直到条件不满足时结束
无限循环的应用
a = 3
while a > 0:
a = a - 1
print(a)
循环程序永不退出,CTRL+C退出当前程序
循环控制保留字
break和continue
- break跳出并结束当前整个循环,执行循环后的语句
- continue结束当次循环,继续执行后续次数循环
- break和continue都可以与for和while循环搭配使用
for c in "Python":
if c == "t":
continue
print (c, end = '')
>>> Pyhon
for c in "Python":
if c == "t":
break
print (c, end = '')
>>> Py
s = "Python"
while s != "":
for c in s:
print (c, end = '')
s = s[:-1]
>>> PythonPythoPythPytPyP
s = "Python"
while s != "":
for c in s:
if c == 't':
break #一个break仅跳出内层循环,外层循环任有效
print (c, end = '')
s = s[:-1]
>>> PyPyPyPyPyP
一个break只可以跳出一个循环
循环的扩展
循环与else
for <循环变量> in <遍历结构>:
<语句块1>
else:
<语句块2>
while <条件>:
<语句块1>
else:
<语句块2>
- 当循环没有被break语句退出时,执行else语句块
- else语句块作为”正常“完成循环的奖励
- 这里的else的用法与异常处理中else用法相似
for c in "Python":
if c == 't':
continue
print(c, end = "")
else:
print("正常退出")
>>> Pyhon正常退出
for c in "Python":
if c == 't':
break
print(c, end = "")
else:
print("正常退出")
>>> Py
单元小结
- for...in 遍历循环:计数、字符串、列表、文件...
- while无限循环
- continue和break保留字:退出当前循环层次
- break仅能退出最内层当前循环
- 循环else的高级用法:与break有关