鱼C论坛

 找回密码
 立即注册
查看: 860|回复: 2

[已解决]课后作业第29讲

[复制链接]
发表于 2018-5-18 19:44:08 | 显示全部楼层 |阅读模式

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

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

x
动动手第三题:

    begin = int(begin) - 1
    end =int(end)
    lines = end - begin

    f = open(file_name)

    for i in range(begin):     #用于耗掉begin之前的内容
        f.readline()


    if lines < 0:
        print(f.read())
    else:
        for j in range(lines):
            print(f.readline(),end='')

不太理解打印内容的这一部分,请各位大佬帮忙解释解释



最佳答案
2018-5-18 22:07:33
hi 举个栗子,请楼主参考

   begin = int(begin) - 1 # 1. 文件共10行,用户设定 begin = 2 ,end= 8,代码中 begin=1,end=8
    end =int(end)
    lines = end - begin  # 2.共显示7行,预期 从第2行到第8行 显示,lines > 0 ,走 else分支

    f = open(file_name)

    for i in range(begin):     #3.因为从第2行开始显示,因此第一行跳过,即:虽然进行文件读取,但是不显示    for i in range(1)  只会循环1次,即文件指针移动到第二行开头
        f.readline()


    if lines < 0:               
        print(f.read())   
    else:
        for j in range(lines):  # 4. for j in range(7),循环7次,即:文件指针从第二行移动到第九行开头,因为加了print语句,因此打印了7行,从第二行到第八行正常显示出来
            print(f.readline(),end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-18 20:05:11 | 显示全部楼层
你自己跑下程序就会明白了,打印内容部分,正常只会打印begin到end之间的内容,如果end < begin 则打印剩下的所有内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-18 22:07:33 | 显示全部楼层    本楼为最佳答案   
hi 举个栗子,请楼主参考

   begin = int(begin) - 1 # 1. 文件共10行,用户设定 begin = 2 ,end= 8,代码中 begin=1,end=8
    end =int(end)
    lines = end - begin  # 2.共显示7行,预期 从第2行到第8行 显示,lines > 0 ,走 else分支

    f = open(file_name)

    for i in range(begin):     #3.因为从第2行开始显示,因此第一行跳过,即:虽然进行文件读取,但是不显示    for i in range(1)  只会循环1次,即文件指针移动到第二行开头
        f.readline()


    if lines < 0:               
        print(f.read())   
    else:
        for j in range(lines):  # 4. for j in range(7),循环7次,即:文件指针从第二行移动到第九行开头,因为加了print语句,因此打印了7行,从第二行到第八行正常显示出来
            print(f.readline(),end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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