python3 : while-else / for-else精准用法

本文详细解释了在Python中如何使用for和while循环配合else语句,强调了else块仅在循环正常结束时执行,以及break和continue对else语句的影响。通过实例演示,展示了else语句在不同情况下的行为。
摘要由CSDN通过智能技术生成

按语:

        别灰心!!

        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天休息,不去找代码神童!

最终,没有找到代码神童。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值