|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第二十九讲的题目,要打印文件的其中几行,然后要求能任意打印所需的某几行,甲鱼哥的答案有点复杂,我自己写了个容易理解的,但是不知道哪里出问题运行不了。请问哪里有问题?
file_target=input('请输入要打开的文件:')
line1=input('请输入要显示的行数【上界】:')
line2=input('请输入要显示的行数【下界】:')
print('文件"%s"的第%s行到第%s行的内容如下:'%(file_target,line1,line2)
f1=open(file_target)
list1=list(f1)
f1.close()
if line1==None and line2!=None:
for each in list1[:int(line2)]:
print(each)
if line2==None and line1!=None:
for each in list1[int(line1-1):]:
print(each)
if line1==None and line2==None:
print('输入有误')
if line1!=None and line2!=None:
for each in list1[int(line1-1):int(line2)]:
print(each)
本帖最后由 Twilight6 于 2020-6-26 20:50 编辑
你的 print 那少了个括号,对了而且你这边转 list 应该判断是否等于空列表 而不是 None
还有这个地方,你写错了把:
for each in list1[int(line1-1):int(line2)]:
-1移到外面就好了:
for each in list1[int(line1)-1:int(line2)]
正确代码:
- file_target=input('请输入要打开的文件:')
- line1=input('请输入要显示的行数【上界】:')
- line2=input('请输入要显示的行数【下界】:')
- print('文件"%s"的第%s行到第%s行的内容如下:'%(file_target,line1,line2))
- f1=open(file_target)
- list1=list(f1)
- f1.close()
- if line1==[] and line2!=[]:
- for each in list1[:int(line2)]:
- print(each)
- if line2==[] and line1!=[]:
- for each in list1[int(line1-1):]:
- print(each)
- if line1==[] and line2==[]:
- print('输入有误')
- if line1!=[] and line2!=[]:
- for each in list1[int(line1)-1:int(line2)]:
- print(each,end='')
复制代码
|
|