按语:
别灰心!!
IT 技术本身不困难!尤其是以实用性、易用性著称的Python!
真相只有一个:
不合理的教材会加大知识难度!!
很多老师的书很棒,但是,针对 “for-else while-else” 没有阐述清晰。
相反,这一篇不起眼的文章很到位!
1、总论:循环语句 与 else
while / for 循环 与 else 一起使用,else 块将在循环正常结束后继续运行。
PS:
在其他编程语言中,else 语句仅在 if - else 选择结构中使用。但是在 Python 也允许我们和 while / for 循环一起使用。
原则1)else 语句仅在循环(while / for)正常终止时生效;
当循环未被 break 语句终止、或者触发contine时,会继续执行循环之后的 else 语句。
原则2)在强制终止( break / continue )循环的情况下,则不执行 else 语句。
是不是很简单?看Demo,更加简单...
2、for - else
for 循环使用 else 语句:
知识点1、
break 强制终止循环的情况下,则不执行 else 语句;
否则,执行 else 语句。
# 限制3次登录
for i in range(3):
username = input('\t请输入用户名:')
pwd = input('\t请输入密码:')
if username=='admin' and pwd=='1234':
print('\t\t登录成功!')
break
else:
print('\t\tID错误,请重试!\n')
else:
print('\t\t3次登录失败,请明天再重试!')
#情况1)3次登录失败,则继续执行 for-else 中的 else语句。
#情况2)登录成功,break跳出循环,不触发else语句
知识点2、
continue 跳出循环的情况下,则不执行 else 语句;
否则,执行 else 语句。
for i in range(3):
if i==2:
print('\t\t休息一天,不去上学了!!')
continue
else:
print('\t最终,你逃学被通报批评了!!')
#循环中触发了contine语句, for-else 中的 else语句也会生效、执行。
输出结果如下:
休息一天,不去上学了!!
最终,你逃学被通报批评了!!
3、while - else
while 循环使用 else 语句:
与for - else逻辑完全一致。
知识点1、
break 强制终止循环的情况下,则不执行 else 语句;
否则,执行 else 语句。
i = 1
while i <=3:
if 'hello':
print(f'\t第{i}天,没有找到代码神童!')
i += 1
else:
print("\n最终,没有找到代码神童。")
#此时,while循环正常结束,则会触发 else后续语句。
输出结果如下:
第1天,没有找到代码神童!
第2天,没有找到代码神童!
第3天,没有找到代码神童!
最终,没有找到代码神童。
i = 1
while i <=3:
if 'hello' and i==2:
print(f'\t第{i}天,终于找到了代码神童!')
break
#此时,break结束了while循环,则不会触发 else后续语句。
i += 1
else:
print("\n最终,没有找到代码神童。")
输出结果如下:
第2天,终于找到了代码神童!
知识点2、
continue 跳出循环的情况下,则不执行 else 语句;
否则,执行 else 语句。
i = 1
while i <= 3:
i += 1
if i == 2:
print(f'\t第{i}天休息,不去找代码神童!')
continue
# 此时,continue跳出了while循环,则不会触发 else后续语句。
else:
print("\n最终,没有找到代码神童。")
输出结果如下:
第2天休息,不去找代码神童!
最终,没有找到代码神童。