python读写文件文件中for循环和while循环区别

本文详细对比了Python中使用for循环和while循环读写文本文件的方法,阐述了两种循环在处理复杂逻辑判断时的优劣,并提供了标准流程示例。

python读写文件文件中for循环和while循环区别

一个学员在向我学习python从零基础到网页采集和web开发初步课程中,问我在
读写文本文件有2中方法,一种是for循环,一种是while循环。他问我有啥区别。
我当时回答是2个没有啥区别,先有while循环,后来python语言设计者再搞一个
for循环读写文件。for循环简单。当时我是这样回答的。
for line in file1:
   print line
 
while True :
    line = file1.readline()
  
事后我总结一下,用while循环读写文件还是比for循环都写文件好。
line = file1.readline()这个readline()象指针一样,可以控制那些行不读,可以跳过或那几行可以合并到
一行中。
for 循环也可以结合seek处理这样的情况,但还没有while循环中的readline()来得方便。
for,while循环处理文本文件标准流程
 
#for 循环
file1 = open('test1.txt','rU')
file2 = open('test2.txt','w')
 
for line in file1:
   if 判断 :
       file2.write(line)
 
 
#while  循环
file1 = open('test1.txt','rU')
file2 = open('test2.txt','w')
 
while True:
   line = file1.readline()
   if 判断 :
       file2.write(line)
 
   if not line :
       break
 
 
总结:需要在读文本文件中有很多逻辑判断时,采用while比较好。没有复杂的逻辑判断时用for循环比较好。
转载本文请注明来源https://github.com/pythonpeixun/article/blob/master/python_shiping.md
### 区别 #### 语法结构 - **for 循环**:有固定的语法结构,用于遍历可迭代对象,如列表、元组、字符串等。语法格式为 `for 元素 in 可迭代对象:`,循环次数取决于可迭代对象中元素的数量。例如: ```python fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` - **while 循环**:基于条件判断来控制循环的执行,只要条件表达式为真,就会一直执行循环体。语法格式为 `while 条件表达式:`。例如: ```python count = 0 while count < 3: print(count) count = count + 1 ``` #### 循环控制逻辑 - **for 循环**:侧重于对可迭代对象中的元素进行遍历,循环次数由可迭代对象的长度决定,适合已知迭代次数的情况。 - **while 循环**:通过条件表达式来控制循环的执行,循环次数不固定,更适合在满足特定条件时持续执行操作,循环次数可能事先未知。 #### 死循环构造 在构造死循环时,while 循环里的条件被看成表达式,用 `while TRUE` 构造死循环时,`TRUE` 实际上被看成永远为真的表达式,容易产生混淆,有些工具软件如 PC-Lint 会认为出错,而使用 `for(;;)` 构造死循环更合适 [^3]。例如: ```python # while 构造死循环 while True: print("这是一个死循环") # Python 没有 for(;;) 语法,但可以用 pass 模拟类似效果 for _ in iter(int, 1): pass ``` ### 使用场景 #### for 循环 - **遍历序列**:当需要遍历列表、元组、字符串等可迭代对象时,使用 for 循环非常方便。例如遍历字符串中的每个字符: ```python string = "hello" for char in string: print(char) ``` - **已知迭代次数**:如果明确知道循环需要执行的次数,可以使用 `range()` 函数结合 for 循环。例如计算 1 到 10 的整数之: ```python sum = 0 for i in range(1, 11): sum = sum + i print(sum) ``` #### while 循环 - **条件未知**:当循环的终止条件不明确,需要根据程序运行过程中的某些条件来决定是否继续循环时,使用 while 循环。例如从用户输入中读取数据,直到用户输入特定字符为止: ```python user_input = "" while user_input != "q": user_input = input("请输入内容(输入 q 退出): ") print("你输入的是:", user_input) ``` - **循环次数依赖于条件**:循环的执行次数取决于某个动态变化的条件时,适合使用 while 循环。例如实现一个猜数字游戏,直到猜对为止: ```python import random number = random.randint(1, 100) guess = 0 while guess != number: guess = int(input("猜一个 1 到 100 之间的数字: ")) if guess < number: print("猜的数字太小了,再试一次。") elif guess > number: print("猜的数字太大了,再试一次。") print("恭喜你,猜对了!") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值