Python 循环结构详解:for 与 while 循环的实战指南
目录
前言
在 Python 编程中,循环结构是实现重复执行代码块的核心工具。掌握 for 循环和 while 循环的用法,能让你高效处理批量数据、自动化任务等场景。本文将从语法、示例到注意事项,全方位解析这两种循环结构。
一、for 循环:遍历序列的利器
1. 基本语法格式
Python 的 for 循环用于遍历可迭代对象(如列表、元组、字符串、字典、文件等),语法格式为:
python
运行
for 变量 in 可迭代对象:
循环体代码块
每次循环时,变量 会依次取到可迭代对象中的每个元素,直到所有元素遍历完毕,循环结束。
2. 参数说明
变量:用于存储可迭代对象中当前遍历的元素,名称可自定义。可迭代对象:任何能逐个返回元素的对象,如列表[1,2,3]、字符串"abc"、字典{"a":1, "b":2}等。循环体:缩进的代码块,每次迭代时执行。
3. 示例演示
示例 1:遍历列表
python
运行
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
输出:
plaintext
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
通过 for 循环,逐个取出列表中的水果名称并打印,实现了批量操作。
示例 2:简化语法(推导式)
Python 提供列表推导式,可在一行内完成 for 循环的逻辑,简化代码:
python
运行
# 生成1-5的平方列表
squares = [x**2 for x in range(1, 6)]
print(squares) # 输出:[1, 4, 9, 16, 25]
推导式让批量生成数据的过程更简洁,同理还可用于字典、集合推导。
示例 3:遍历文件
在处理文本文件时,for 循环可逐行读取内容:
python
运行
with open("test.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # strip() 去除换行符
上述代码会打开 test.txt,并逐行打印文件内容(去除每行末尾的换行符)。
示例 4:数值序列(range 函数)
range() 函数生成数值序列,常与 for 循环搭配实现 “计数式” 循环:
python
运行
# 循环5次,i从0到4
for i in range(5):
print(f"第{i+1}次循环")
输出:
plaintext
第1次循环
第2次循环
第3次循环
第4次循环
第5次循环
示例 5:C 语言风格(不推荐)
Python 也支持类似 C 语言的 for 循环语法(for (i=0; i<5; i++)),但需借助 range 和索引,这种写法不够 “Pythonic”,一般不推荐:
python
运行
nums = [10, 20, 30, 40]
for i in range(len(nums)):
print(nums[i])
更推荐直接遍历元素(如示例 1),代码更简洁易读。
4. 注意事项
- 缩进规则:Python 用缩进来区分代码块,
for循环的循环体必须统一缩进(建议 4 个空格),否则会报语法错误。 - 可迭代对象类型:确保
in后是可迭代对象,若传入非可迭代对象(如单个整数),会报TypeError。
二、while 循环:满足条件时持续执行
1. 基本语法
while 循环根据条件表达式的真假决定是否执行循环体,语法格式为:
python
运行
while 条件表达式:
循环体代码块
只要 条件表达式 为 True,循环体就会重复执行;当条件为 False 时,循环终止。
2. 示例演示
示例 1:简单的计数器
python
运行
count = 1
while count <= 3:
print(f"计数:{count}")
count += 1 # 计数器自增,避免无限循环
输出:
plaintext
计数:1
计数:2
计数:3
通过 count 变量控制循环次数,每次循环后自增,直到 count > 3 时退出。
示例 2:读取文件内容行
与 for 循环类似,while 也可逐行读取文件,但需手动控制读取过程:
python
运行
with open("test.txt", "r", encoding="utf-8") as f:
line = f.readline()
while line: # 当line不为空时继续循环
print(line.strip())
line = f.readline()
readline() 每次读取一行,若返回空字符串(文件末尾),则 while 条件为 False,循环结束。
示例 3:用户输入控制
通过用户输入决定循环是否继续:
python
运行
while True:
user_input = input("请输入'退出'结束程序:")
if user_input == "退出":
break # 退出循环
print(f"你输入了:{user_input}")
这里用 while True 先进入循环,再通过 if 判断和 break 语句控制退出时机。
3. 无限循环
若 while 的条件始终为 True,则会形成无限循环。需谨慎使用,通常要在循环体内加入退出逻辑(如 break),否则程序会一直运行。
示例(需手动终止的无限循环,仅作演示):
python
运行
while True:
print("循环不会停止,除非强制关闭程序!")
三、for 与 while 循环的选择场景
- 用 for 循环的场景:当你明确知道要遍历的对象(如列表、文件行、数值范围),优先选
for,代码更简洁。 - 用 while 循环的场景:当循环次数由 “条件是否满足” 决定(如用户输入验证、不确定次数的重试操作),选
while更灵活。
掌握这两种循环结构,能让你在 Python 编程中应对绝大多数重复执行的需求。多结合实际场景练习,就能熟练运用啦!
更多推荐
所有评论(0)