第29课第三题,小甲鱼的答案看得有点晕。我自己写的如下,求优化
题目要求是打开一个文件,然后输入要显示的行数,根据不同的输入,显示不同的内容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) 只要能实现即可,优化工作需要太多时间
训练的关键在于对知识的掌握,优化工作建议自己进行,因为内容并不少 答案不是唯一的,重要的是自己能独立完成,代码优化可以慢慢来。
我的做法也不一样,我是把文章全部内容放在一个列表中,然后根据条件(和你的一样),再截取列表的对应内容打印出来
页:
[1]