>>> f = open("208.txt")

>>> f.readline() #读第一行

'Learn python with qiwsir.\n'

>>> f.readline() #读第二行

'There is free python course.\n'

>>> f.readline() #读第三行

'The website is:\n'

>>> f.readline() #读第四行

'

http://qiwsir.github.io\n'

>>> f.readline() #读第五行,也就是这真在读完最后一行之后,到了此行的后面

'Its language is Chinese.\n'

>>> f.readline() #无内容了,但是不报错,返回空。

''

以上演示的是用readline()一行一行地读。当然,在实际操作中,我们是绝对不能这样做的,一定要让它自动进行,比较常用的方法是:

>>> for line in f: #这个操作是紧接着上面的操作进行的,请看官主要观察

...   print line, #没有打印出任何东西

...

这段代码之所没有打印出东西来,是因为经过前面的迭代,指针已经移到了最后了。这就是迭代的一个特点,要小心指针的位置。

>>> f = open("208.txt") #从头再来

>>> for line in f:

...   print line,

...

Learn python with qiwsir.

There is free python course.

The website is:

http://qiwsir.github.io

Its language is Chinese.

这种方法是读取文件常用的。另外一个readlines()也可以。但是,需要有一些小心的地方,看官如果想不起来小心什么,可以在将关于文件的课程复习一边。

上面过程用next()也能够读取。

>>> f = open("208.txt")

>>> f.next()

'Learn python with qiwsir.\n'

>>> f.next()

'There is free python course.\n'

>>> f.next()

'The website is:\n'

>>> f.next()

'

http://qiwsir.github.io\n'

>>> f.next()

'Its language is Chinese.\n'

>>> f.next()

Traceback (most recent call last):

File "", line 1, in

StopIteration

如果用next(),就可以直接读取每行的内容。这说明文件是天然的可迭代对象,不需要用iter()转换了。

再有,我们用for来实现迭代,在本质上,就是自动调用next(),只不过这个工作,已经让for偷偷地替我们干了,到这里,列位是不是应该给for取另外一个名字:它叫雷锋。

还有,列表解析也能够做为迭代工具,在研究列表的时候,看官想必已经清楚了。那么对文件,是否可以用?试一试:

>>> [ line for line in open('208.txt') ]

['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '

http://qiwsir.github.io\n', 'Its language is Chinese.\n']

至此,看官难道还不为列表解析所折服吗?真的很强大,又强又大呀。

其实,迭代器远远不止上述这么简单,下面我们随便列举一些,在python中还可以这样得到迭代对象中的元素。

>>> list(open('208.txt'))

['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '

http://qiwsir.github.io\n', 'Its language is Chinese.\n']

>>> tuple(open('208.txt'))

('Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', '

http://qiwsir.github.io\n', 'Its language is Chinese.\n')

>>> "$$$".join(open('208.txt'))

'Learn python with qiwsir.\n$$$There is free python course.\n$$$The website is:\n$$$

http://qiwsir.github.io\n$$$Its language is Chinese.\n'

>>> a,b,c,d,e = open("208.txt")

>>> a

'Learn python with qiwsir.\n'

>>> b

'There is free python course.\n'

>>> c

'The website is:\n'

>>> d

'

http://qiwsir.github.io\n'

>>> e

'Its language is Chinese.\n'

上述方式,在编程实践中不一定用得上,只是向看官展示一下,并且看官要明白,可以这么做,不是非要这么做。

补充一下,字典也可以迭代,看官自己不妨摸索一下(其实前面已经用for迭代过了,这次请摸索一下用iter()...next()手动一步一步迭代)。

python迭代_Python迭代相关推荐

  1. python 跳过迭代_Python迭代和解析(4):自定义迭代器

    Python迭代和解析(4):自定义迭代器 发布时间:2019-01-13 17:10, 浏览次数:280 , 标签: Python 解析.迭代和生成系列文章:https://www.cnblogs. ...

  2. python中循环迭代语句_python条件与循环-循环

    1 while语句 while用于实现循环语句,通过判断条件是否为真,来决定是否继续执行. 1.1 一般语法 语法如下: while expression: suite_to_repeat 1.2 计 ...

  3. python 通过索引迭代列表_Python的索引迭代

    Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数: > ...

  4. python中迭代_python中的迭代什么意思

    python中的迭代什么意思 发布时间:2020-09-21 12:33:45 来源:亿速云 阅读:67 作者:Leah 这期内容当中小编将会给大家带来有关python中的迭代什么意思,文章内容丰富且 ...

  5. python中可迭代对象是什么意思_python中可迭代对象是什么

    python中可迭代对象是:存储了元素的一个容器对象,且容器中的元素可以通过"__iter__( )"方法或"__getitem__( )"方法访问.可迭代对象 ...

  6. python的可迭代对象是什么意思_python可迭代对象和迭代器区别

    python内置迭代对象: 字符串,列表,元组,文件,字典 # 字符串迭代 str = "conding make me happy" for c in str: print(c, ...

  7. python中的迭代库

    python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...

  8. Python中的迭代遍历 for in

    遍历就是从头到尾依次从列表中获取数据,在循环体内部针对每一个元素,执行相同的操作. 在Python中为了提高列表的遍历效率,专门提供的迭代(iteration)遍历. 使用for...in就能够在 P ...

  9. Python enumerate索引迭代

    索引迭代 Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数 ...

最新文章

  1. oracle user_scheduler_jobs,Oracle 定时任务dbms_scheduler
  2. python【Matlibplot绘图库】Animation动画(真の能看懂~!)
  3. python发明者叫什么-python是谁发明的
  4. 消息确认机制---confirm异步
  5. malloc函数具体解释
  6. Docker常用命令(docker快捷键)海康docker命令 LY
  7. pom.xml增加依赖
  8. 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站
  9. 前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...
  10. 数据库实验3 数据库的单表查询
  11. 详解Visual Studio 2010中ASP.NET新增23项功能 转
  12. H.265与H.264对比有哪些优势
  13. ipv6的127位掩码如何表示_网络基础 | 浅谈IP地址与子网掩码
  14. 使用 Notepad 或 TextEdit 来编写 HTML
  15. ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)
  16. Python爬取两个城市之间的直线距离
  17. 北京化工大学寒假集训【BUCTOJ】(1)1-6题
  18. Qt 信号与槽基础操作
  19. 看看华为、阿里大数据架构师的必备技能!
  20. 算法竞赛中的JAVA使用笔记

热门文章

  1. 删除linux系统中的eth0.bak与多余的网卡
  2. TCP三次握手及原理
  3. 上学的时候的一个作业
  4. C++ new 的三种面貌
  5. .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法
  6. Dinic算法(研究总结,网络流)
  7. Django根据现有数据库建立/更新model
  8. Android视频截图【转】
  9. python:类5——Python 的类的下划线命名有什么不同?
  10. 小问题420_1_hibernateTemplate.update不执行