Python 程序设计讲义(24):循环结构——循环后处理 while … as 与 for…as
目录
所有的循环都是在循环结束之后,执行循环之外的其他语句。但有时需要在循环结束后,执行一些具有特定意义的语句,Python 为 while 循环和 for 循环提供了 else 语句,用于循环后的处理。
一、while 循环的循环后处理:while…as
在 while 循环后使用 else 来执行特定的语句。
语法格式如下:
while 条件:
循环体
else:
语句块
说明:当循环正常结束后,将执行 esle 对应的语句块。
例如:输入成绩,如果成绩在60分及以上,显示通过,否则显示不通过。循环结束后显示循环已结束。
程序如下:
score=eval(input("请输入你的成绩(输入负值结束循环): "))
while score>0:
if score>=60:
print("通过")
else:
print("不通过")
score=eval(input("请输入你的成绩(输入负值结束循环): "))
else:
print("循环已结束")
程序的运行结果为:
请输入你的成绩(输入负值结束循环): 50
不通过
请输入你的成绩(输入负值结束循环): 85
通过
请输入你的成绩(输入负值结束循环): 55
不通过
请输入你的成绩(输入负值结束循环): -2
循环已结束
二、for 循环的循环后处理:for…as
在 for 循环后使用 else 来执行特定的语句。
语法格式如下:
for 循环变量 in 遍历结构:
循环体
else:
语句块
例如:计算1~100
之间所有整数的和,循环结束后显示循环已结束。
程序如下:
sum=0
for i in range(1,101):
sum=sum+i
else:
print("循环已结束")
print("sum=",sum)
程序的运行结果为:
循环已结束
sum= 5050
三、循环控制语句 break 与 continue 对循环后处理的影响
如果在包含 break 与 continue 的循环中使用了 else,那么 else 后面的语句会收到 break 的影响,但不会受到 continue 的影响。
在 while 循环中,只有当循环条件为假(False)时才属于正常的循环结束。在 for 循环中,只有正常提取过遍历结构中的所有元素后而结束的循环才属于正常的循环结束。只有正常结束的循环才会执行 else 后面的语句。
如果在循环结构中使用了 break,则循环属于非常结束,则不会执行 else 所指定的语句。
如果在循环结构中使用了 continue,则循环仍然会正常结束,因此会执行 else 所指定的语句。
1、循环中有 break 的例子
(1)while 循环举例
sum,i=0,1
while i<10:
sum+=i
i+=1
if i==3:
break
else:
print("循环结束") #此行代码不会被还行
print(sum)
程序的运行结果为:
3
(2)for 循环举例
sum=0
for i in range(1,11):
sum+=i
if i==3:
break
else:
print("循环结束") #此行代码不会被执行
print(sum)
程序的运行结果为:
6
2、循环中有 continue 的例子
(1)while 循环举例
i=0
while i<10:
i+=1
if i%3==0:
continue
print(i)
else:
print("循环结束") #此行代码会被执行
程序的运行结果为:
1
2
4
5
7
8
10
循环结束
(2)for 循环举例
for i in range(1,11):
if i%3==0:
continue
print(i)
else:
print("循环结束") #此行代码会被执行
程序的运行结果为:
1
2
4
5
7
8
10
循环结束