【一篇搞懂Python中的循环】

for循环基本语法

for 变量 in 可迭代对象:
    # 循环体,每次迭代执行的代码
    代码块
  • 变量:每次迭代时,会从可迭代对象中取出一个元素并赋值给这个变量。
  • 可迭代对象:可以被遍历的对象,例如列表、元组、字符串等。
  • 代码块:每次迭代时要执行的代码,需要有适当的缩进(通常是 4 个空格)。

执行流程

  1. 从可迭代对象中取出第一个元素,将其赋值给变量。
  2. 执行循环体中的代码块。
  3. 从可迭代对象中取出下一个元素,再次赋值给变量,然后执行循环体代码。
  4. 重复步骤 3,直到可迭代对象中的元素全部被遍历完。

示例代码及解释

遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
  • 这里的 fruits 是一个列表,属于可迭代对象。
  • 每次循环时,fruit 变量会依次被赋值为列表中的元素,然后打印出来。
  • 输出结果:
apple
banana
cherry
遍历字符串
message = "Hello"
for char in message:
    print(char)
  • message 是一个字符串,也是可迭代对象。
  • 每次循环,char 变量会依次被赋值为字符串中的字符并打印。
  • 输出结果:
H
e
l
l
o
结合 range() 函数

range() 函数常用于生成一个整数序列,常与 for 循环搭配使用来控制循环次数。

for i in range(5):
    print(i)
  • range(5) 会生成一个从 0 到 4 的整数序列。
  • 每次循环,i 变量会依次被赋值为序列中的整数并打印。
  • 输出结果:
0
1
2
3
4

for 循环的其他用法

遍历字典
person = {"name": "John", "age": 30, "city": "New York"}
for key in person:
    print(key, ":", person[key])
  • 遍历字典时,默认遍历的是字典的键。
  • 通过键可以访问对应的值。
  • 输出结果:
name : John
age : 30
city : New York
for-else 结构
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num == 6:
        print("找到了 6")
        break
else:
    print("没有找到 6")
  • for-else 结构中,else 子句会在 for 循环正常结束(即没有通过 break 语句提前退出)时执行。
  • 此例中,由于列表里没有 6,循环正常结束,所以会执行 else 子句的代码。
  • 输出结果:
没有找到 6

while 循环的基本语法

while 条件表达式:
    # 循环体(条件为 True 时执行的代码块)
    代码1
    代码2
    ...  # 可以包含任意合法的 Python 代码

while 循环的执行流程

  1. 判断条件:首先计算 条件表达式 的值,得到一个布尔值(True 或 False)。
  2. 执行循环体:如果条件为 True,则执行循环体内的代码。
  3. 重复判断:循环体执行完毕后,再次回到条件表达式进行判断,若仍为 True,则重复执行循环体;若为 False,则退出循环。

核心逻辑:只要条件为真,就重复执行循环体,直到条件为假时停止。

示例代码与解析

示例 1:简单计数循环
count = 0  # 初始化计数器
while count < 5:  # 条件:count 小于 5 时执行循环
    print(f"当前计数:{count}")
    count = count + 1  # 计数器自增(避免无限循环)
  • 执行过程
    1. count = 0,条件 0 < 5 为 True,打印 0count 变为 1
    2. count = 1,条件 1 < 5 为 True,打印 1count 变为 2
    3. 以此类推,直到 count = 5 时,条件为 False,循环终止。
  • 输出结果

    plaintext

    当前计数:0
    当前计数:1
    当前计数:2
    当前计数:3
    当前计数:4
    
示例 2:处理用户输入(直到输入正确为止)
while True:  # 无限循环(条件永远为 True,需手动退出)
    user_input = input("请输入数字(输入 'q' 退出):")
    if user_input == 'q':
        print("退出循环!")
        break  # 强制退出循环
    elif user_input.isdigit():  # 检查是否为数字
        print(f"你输入的数字是:{user_input}")
    else:
        print("输入无效,请重新输入!")
  • 关键点
    • while True 会形成一个无限循环,必须通过 break 语句退出。
    • break 用于立即终止循环,continue 用于跳过本次循环剩余代码,直接进入下一次条件判断。

while-else 结构(进阶用法)

Python 中的 while 循环可以搭配 else 子句使用,语法如下:

while 条件表达式:
    循环体代码
else:
    # 当循环 **正常结束**(未被 break 中断)时执行的代码
    代码块
示例:寻找因子
n = 10
i = 2
while i < n:
    if n % i == 0:
        print(f"{n} 不是质数,因子为 {i}")
        break  # 找到因子后退出循环
    i = i + 1
else:
    # 若循环未被 break 中断(即没有找到因子),说明是质数
    print(f"{n} 是质数")

  • 输出结果

    plaintext

    10 不是质数,因子为 2
    
  • 逻辑说明
    • 如果循环通过 break 退出(找到因子),则不执行 else 代码。
    • 如果循环因条件为假而正常结束(未找到因子),则执行 else 代码。

注意事项

  1. 避免无限循环

    • 确保循环体内有修改条件表达式的代码(如计数器自增),否则会导致无限循环(需手动按 Ctrl+C 终止程序)。

    python

    # 错误示例(无限循环)
    while True:
        print("这是一个无限循环!")  # 无退出条件,需手动终止
    
  2. 条件表达式的类型

    • 条件表达式可以是任何返回布尔值的表达式(如比较运算、逻辑运算、函数调用等)。

    python

    while x > 0 and y < 10:  # 多个条件组合
        ...
    while not is_valid():  # 调用函数返回布尔值
        ...
    
  3. 循环控制语句

    • break:立即退出当前循环。
    • continue:跳过本次循环剩余代码,直接进入下一次条件判断。
    • pass:空操作,用于占位(避免语法错误)。

while 循环 vs for 循环

场景while 循环for 循环
适用场景未知循环次数,依赖条件判断已知循环次数,遍历可迭代对象(如列表、字符串)
语法核心条件驱动迭代驱动
典型示例用户输入验证、游戏循环、异步任务监听遍历列表元素、字符串字符、字典键值对

总结

while 循环是 Python 中基于条件判断的循环语句,适用于循环次数不确定的场景。核心是通过一个布尔条件控制循环的执行,配合 breakcontinue 等语句可以实现灵活的逻辑控制。记住:使用 while 时一定要确保条件最终会变为 False,避免无限循环!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值