PYTHON 循环语句 for - else 用法

for - else 用法

在一般的 for 循环中,当我们无法知道循环是提前跳出,还是正常走完整个循环结束,需要通过额外的 if 判断语句进行判断。

lst = [1, 2, 3, 4, 5]
flag = 0
for i in lst:
    if i == 6:
        flag += 1
        print("找到了6,做一些事情...")
        break
if flag == 0:
    print("没有找到6, 做其他事情...")

在一个不确定的列表中查找一个元素,如果找到这个元素可以break终止循环。但是如果遍历整个列表都找不到这个元素,就需要添加一个flag来记录。

if判断是否找到了这个元素,找到了赋值1。如果没有找到,就在循环结束后用if判断语句判断flag==0时,需要做什么。

for - else 结构解决上面的问题,不需要添加额外的flag和if判断语句。

当for循环中的if查找满足条件了,则break跳出循环。
若for循环中的if查找在遍历整个列表后都不满足条件,则正常终止循环,并执行else语句。

lst = [1, 2, 3, 4, 5]
for i in lst:
    if i == 6:
        print("找到了6")
        break
else:
    print("没有找到6")
    
# 输出:
没有找到6

for循环中的if查找语句在遍历完整个列表后,都没有找到需要查找的内容,则循环正常终止,然后执行else中的语句。

lst = [1, 2, 3, 4, 5]
for i in lst:
    if i == 3:
        print("找到了3")
        break
else:
    print("没有找到3")
    
# 输出:
1
2
3
找到了3

for循环中的if查找语句在遍历列表的时候,找到了需要查找的内容,则提前break跳出循环,后面的不会继续遍历,而且else中的语句不会执行。

示例:从一个二维数组数组中是否有某个数,并给出第一次出现的位置。

l = [range(5 * i, 5 * i + 5) for i in range(5)]
a = 22  # 要查找的数
print(l)
for i, x in enumerate(l):
    for j, y in enumerate(x):
        if y == a:
            loc = (i, j)
            break
    else:
        continue
    print('Find it! And the loc is: ', loc)
    break
# 输出: Find it! And the loc is:  (4, 2)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值