鱼C论坛

 找回密码
 立即注册
查看: 2272|回复: 6

请问 for 循环的参数如何理解

[复制链接]
发表于 2016-12-28 15:58:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 火焰纹章觉醒 于 2016-12-28 16:09 编辑

比如我创建了一个列表,我知道 “for i in temp:”  i 是可以遍历整个列表temp,但是如果我读取了一个txt文档,我使用for循环一次出来的到底是什么呢?   我是看了第29讲,将对话转换成文件保存中,”f = open('record.txt')     for each_line in f:      if each_line[:6] != '======':  ”用这句话并没有说是行读取,但是进行了分段,是什么原因呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-28 16:25:37 | 显示全部楼层
for 是 迭代 循环。文件对象 f 定义有 __iter__ 方法,自动转化为 迭代器,每次迭代一行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 16:29:11 | 显示全部楼层
for each_line in f:      
这里each_line就默认会按行读取F里面内容
if each_line[:6] != '======':  ”
这里就是如果读取的这一行前面6个字符是‘======’那就是满足这个if的条件了,就执行if下面的语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 16:29:20 | 显示全部楼层
  1. >>> f=open('\Python34\README.txt')
  2. >>> f.__iter__
  3. <method-wrapper '__iter__' of _io.TextIOWrapper object at 0x021DA530>
  4. >>> f.__next__
  5. <method-wrapper '__next__' of _io.TextIOWrapper object at 0x021DA530>
  6. >>>
复制代码

'__iter__' 和 '__next__'  都是与 迭代器 相关的 魔法方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 16:35:32 | 显示全部楼层
余欲渔 发表于 2016-12-28 16:29
for each_line in f:      
这里each_line就默认会按行读取F里面内容
if each_line[:6] != '======':  ” ...

恩,我明白了。不改参数的情况下,比如打开了一个文档就是默认行读取,对么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 16:36:46 | 显示全部楼层
SixPy 发表于 2016-12-28 16:29
'__iter__' 和 '__next__'  都是与 迭代器 相关的 魔法方法

每次迭代一行,我明白了。我去理解一下迭代器,非常感谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 17:03:39 | 显示全部楼层
SixPy 发表于 2016-12-28 16:29
'__iter__' 和 '__next__'  都是与 迭代器 相关的 魔法方法

哇,感觉从 文件处理 和 os 开始感觉就变得难了。几个问题就想一天。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表