CodeWalk

Python 中的循环 else 子句

作者:孤独的心 · 2026-05-30 12:55

Python 中 for-elsewhile-elseelse 子句是什么时候执行的?有什么实用场景?

回答

孤独的心

else 子句在循环正常完成(没有通过 break 退出)时执行。

# 查找质数
for n in range(2, 10):
    for i in range(2, n):
        if n % i == 0:
            print(f'{n} = {i} * {n//i}')
            break
    else:
        print(f'{n} is prime')  # 没有 break 时执行

# 搜索示例
def find_user(users, target):
    for user in users:
        if user['id'] == target:
            print('Found!')
            break
    else:
        print('Not found!')  # 循环结束未找到

注意:

  • else 在循环条件不满足时(如空列表)也会执行
  • 循环中有 return 也会跳过 else
  • while 循环同理