三种循环语句以及break、continue

Python 有 三种 主要的循环语句:

循环类型关键字适用场景是否一定执行至少一次是否有内置计数器
for 循环for … in已知循环次数 / 遍历序列/可迭代对象没有(但常用 range/enumerate)
while 循环while条件满足就继续(次数未知)没有
while True循环while True死循环 + break 退出(最灵活)是(除非一开始break)没有

1. for 循环(最常用、最安全)

# 基本格式
for 临时变量 in 可迭代对象:
    循环体...

# 常见用法举例
# 1. 遍历列表/字符串/元组
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(fruit)

# 2. 用 range() 做固定次数循环(最像其他语言的 for i=0; i<n; i++)
for i in range(5):          # 0 1 2 3 4
    print(i)

for i in range(1, 10, 2):   # 1 3 5 7 9
    print(i, end=" ")

# 3. 带索引遍历(非常常用!)
for idx, fruit in enumerate(fruits):
    print(f"第{idx}个水果是:{fruit}")

# 4. 遍历字典
d = {"name": "小明", "age": 18, "city": "上海"}
for k in d:                # 默认遍历 key
    print(k, "→", d[k])

for k, v in d.items():     # 同时拿到 key 和 value
    print(k, v)

2. while 循环(条件驱动)

# 基本格式
while 条件表达式:
    循环体...
    # 记得让条件最终会变为 False,否则死循环!

# 经典例子:累加到 n
n = int(input("请输入 n:"))
i = 1
total = 0
while i <= n:
    total += i
    i += 1
print("1到", n, "的和是", total)

# 经典错误示范(死循环):
# while True:
#     print("哈哈哈")   # 永远停不下来

3. while True + break 写法(非常强大、Python 中超常用)

while True:
    user_input = input("请输入数字(输入 q 退出):")
    if user_input == 'q':
        break
    # 其他处理...
    print("你输入了:", user_input)

break 与 continue 的区别(非常重要!)

语句作用对循环的影响常用场景
break立刻跳出整个循环循环直接结束找到目标就停止、用户输入 q 退出
continue立刻结束本次循环,进入下一次本次剩下的语句不执行,直接下一轮跳过不符合条件的元素、过滤数据

对比代码演示

# 示例:打印 1~10 中除了 3 的倍数以外的数字
print("使用 continue:")
for i in range(1, 11):
    if i % 3 == 0:
        continue          # 跳过本次循环,3、6、9 不会打印
    print(i, end=" ")     # 1 2 4 5 7 8 10

print("\n\n使用 break:")
for i in range(1, 11):
    if i == 7:
        break             # 遇到 7 直接结束整个循环
    print(i, end=" ")     # 只打印 1 2 3 4 5 6

嵌套循环中的 break / continue

# 只 break 当前所在的那一层循环
for i in range(1, 4):
    for j in range(1, 4):
        if j == 2:
            break       # 只跳出内层 for,不会影响外层
        print(f"i={i}, j={j}")
    print("--- 内层循环结束 ---")

# 输出:
# i=1, j=1
# --- 内层循环结束 ---
# i=2, j=1
# --- 内层循环结束 ---
# i=3, j=1
# --- 内层循环结束 ---

小练习(建议自己敲代码验证)

  1. 用 for + range 打印 1~100 内所有 7 的倍数
  2. 用 while 实现:不停让用户输入数字,输入负数就结束,并输出所有输入数字的和
  3. 有一个列表 [1,3,0,5,0,7,0,9],用 for + continue 打印所有非零数字
  4. 用 while True + break 实现一个简单的猜数字游戏(随机数 1~100,猜对 break)

有哪道题想看参考答案,或者想继续深入 else 子句、for-else、while-else 的用法吗?随时告诉我~

文章已创建 4695

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部