鱼C论坛

 找回密码
 立即注册
查看: 1673|回复: 3

[已解决]文件:一个任务课后题3

[复制链接]
发表于 2020-7-15 14:29:03 | 显示全部楼层 |阅读模式

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

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

x
3. 呃,不得不说我们的用户变得越来越刁钻了。要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)

里面有这样几句:

    for i in range(start - 1):
        f.readline()            ##读取一整行的字符串
    num = end - start +1
    if num <0:
        print(f.read())         ##读取字符串
    else:
        for i in range(num):    ###读取前num行,num=3,则读取前三行。
            print(f.readline())
    f.close()
请问这几句是怎么实现打印确定行的。。看着好乱啊
最佳答案
2020-7-15 16:06:24
楼上说的很对。不是所有人都知道你所说的是什么问题的。很多人没有看小甲鱼的视频课程,有的人即使看了,时间久了可能也忘记这个题目了。以后提问,请说清楚题目和问题。能够吸引更多的人来回答,否则就只能等更好知道这个题目的人回答了。
这个题目,刚好我还没忘记。

这几行代码之前已经确定 start 和 end 的值了
第一个for循环,是读取start之前的行,但是读取之后没有其他操作,相当于是移动文件光标到需要显示的那一行。
例如:start=1,那么这个for循环则不会执行,因为start-1=0,不会进入for循环,光标仍然停在文件首行起始位置
start=5,那么这个循环就会先读取4行,光标会停在第5行起始位置,在后面再次进行读取的时候,读到的就是第5行了。

num = end - start +1  这一行代码是计算要显示多少行
若num<0,说明end=-1,也就是要读到末尾,那么就直接用f.read()直接读到末尾了。也就是接下来的if语句块
若num>0,说明end大于start,那么else中的for循环就是读取接下来的num行,并print
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 14:31:42 | 显示全部楼层


建议代码附完整,之后问题时候在截取部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-15 16:06:24 | 显示全部楼层    本楼为最佳答案   
楼上说的很对。不是所有人都知道你所说的是什么问题的。很多人没有看小甲鱼的视频课程,有的人即使看了,时间久了可能也忘记这个题目了。以后提问,请说清楚题目和问题。能够吸引更多的人来回答,否则就只能等更好知道这个题目的人回答了。
这个题目,刚好我还没忘记。

这几行代码之前已经确定 start 和 end 的值了
第一个for循环,是读取start之前的行,但是读取之后没有其他操作,相当于是移动文件光标到需要显示的那一行。
例如:start=1,那么这个for循环则不会执行,因为start-1=0,不会进入for循环,光标仍然停在文件首行起始位置
start=5,那么这个循环就会先读取4行,光标会停在第5行起始位置,在后面再次进行读取的时候,读到的就是第5行了。

num = end - start +1  这一行代码是计算要显示多少行
若num<0,说明end=-1,也就是要读到末尾,那么就直接用f.read()直接读到末尾了。也就是接下来的if语句块
若num>0,说明end大于start,那么else中的for循环就是读取接下来的num行,并print
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-15 18:41:34 | 显示全部楼层
sunrise085 发表于 2020-7-15 16:06
楼上说的很对。不是所有人都知道你所说的是什么问题的。很多人没有看小甲鱼的视频课程,有的人即使看了,时 ...

谢谢啦,,下次会注意的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 23:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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