Python中的for、while是在循环体内没有break语句、没有return语句,或者没有异常出现时才执行else语句,try..except…else是在try中无异常产生时执行,注意不包括continue。
总的来说,是for、while、try语句中‘没毛病’时才执行,而在if..else语句中是if语句判断为假(有毛病)才执行else,这一点要区分开来
fruits=["apple","orange","pear"]
for item in fruits:
if item=="apple":
print("apple")
else:
print("for-else")
apple
输出:for-else
这里for循环正常执行结束,然后执行了else语块的代码。
fruits=["apple","orange","pear"]
for item in fruits:
if item=="apple":
print("break")
break
else:
print("for-else")
输出:break
当在for循环中执行break语句跳出循环时,else语块没有执行。
即for-else搭配使用时,for循环没有因为break语句跳出循环,则会执行else语句。
while-else与for-else类似,均为前面的循环正常结束时else语块会被执行。
i=5
while i>0:
i=i-1
else:
print("while-else")
输出:while-else
while语句正常执行,当while条件为false时结束while循环,进入else语块。
i=5
while i>0:
i=i-1
if i==3:
print("break")
break
else:
print("while-else")
输出:break
while语句因为break语句跳出循环,else语块没有被执行。
while-else搭配使用时,while循环没有因为break语句跳出循环,则会执行else语句
a = 'aa'
try:
# for i in range(3):
# if a[i] == 'a':
# continue
if a == 'aa':
print('不报错')
except:
print('error')
else:
print('no error')
输出:
不报错
no error