循环中的else语句
while 循环else结构:
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码.
需求:女朋友生气了,要惩罚:连续说5遍“老婆大人,我错了”,如果道歉正常完毕后女朋友就原谅我了:
i=0
while i<5:print('老婆,我错了~')i+=1
else:print('老婆大人原谅我了,嘿嘿嘿')
需求:女朋友生气,要求道歉5遍:老婆大人,我错了。
道歉到第三遍的时候,老婆埋怨这一遍说的不真诚,这样可能意味着要退出循环,这个退出有两种可能性: ① 更生气,不打算原谅,也不需要道歉了 ② 这一遍不真诚,可以忍受,继续下一遍道歉
1:
i = 0
while i < 5:if i==2:print('这一遍不真诚')breakprint('老婆我错了...')i+=1
else:print('老婆原谅我了嘿嘿嘿~')
2:
i = 0
while i < 5:if i==2:print('这一遍不真诚,重新说')i+=1 # 一定要调整计数器,否则将死循环continueprint('老婆我错了')i+=1
else:print('老婆原谅我了嘿嘿嘿~')
因为continue是退出当前一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,当循环结束后,则执行了else缩进的代码
for循环else结构:
for 临时变量 in 序列:重复执行的代码...
else:循环正常结束之后要执行的代码
所谓else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行
退出循环的两种方式:
str1 = 'itheima'
for i in str1:if i == 'e':print('遇到e不打印')breakprint(i)
else:print('循环正常结束之后执行的代码')
# else语句不会被执行
str1 = 'itheima'
for i in str1:if i == 'e':print('遇到e不打印')continue # 不需要i+=1print(i)
else:print('循环正常结束之后执行的代码')
# 会全部执行完毕