鱼C论坛

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

第29课第三题,小甲鱼的答案看得有点晕。我自己写的如下,求优化

[复制链接]
发表于 2018-2-6 09:57:43 | 显示全部楼层 |阅读模式

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

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

x
题目要求是打开一个文件,然后输入要显示的行数,根据不同的输入,显示不同的内容
def view_file(file_name,lines):
    f=open(file_name)
    lenght=len(list(f))  #读取文件的行数
    f.seek(0,0)       #文件指针归0
    (front,end)=lines.split(":",1) #提取冒号前、后两个数值

    if front=="" and end!="":
        print("文件%s从开始到%d行的内容如下:" % (file_name,int(end)))
        for each in range(int(end)):
            print(f.readline(),end="")

    elif front!="" and end=="":
        print("文件%s从%d行到末尾的内容如下:" % (file_name,int(front)))
        for each in range(int(front)-1):
            f.readline()    #消耗前fornt-1行的内容
        for each in range(lenght-int(front)+1):
            print(f.readline(),end="")

    elif front=="" and end=="":
        print("文件%s的全文内容如下:" % file_name)
        for each in range(lenght):
            print(f.readline(),end="")

    else:
        print("文件%s从%d行到%d行的内容如下:" % (file_name,int(front),int(end)))
        for each in range(int(front)-1):
            f.readline()  #消耗前fornt-1行的内容
        for each in range(int(end)-int(front)+1):
            print(f.readline(),end="")
    
    f.close()

file_name=input("请输入要打开的文件名:")
lines=input("请输入要显示的行数(格式如:3或2:8或3:或:):")
view_file(file_name,lines)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-6 10:05:16 | 显示全部楼层
只要能实现即可,优化工作需要太多时间
训练的关键在于对知识的掌握,优化工作建议自己进行,因为内容并不少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-6 10:37:23 | 显示全部楼层
答案不是唯一的,重要的是自己能独立完成,代码优化可以慢慢来。
我的做法也不一样,我是把文章全部内容放在一个列表中,然后根据条件(和你的一样),再截取列表的对应内容打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-6 08:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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