| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- file_name = input('请输入需要打开的文件:')
 
 - f = open(f'F:\\{file_name}.txt')
 
 - line_name = input('请输入需要显示的行数【格式如13:21或:21或21:】):')
 
  
- (begin,end) = line_name.split(':')
 
  
- if begin == '' and end =='':
 
 -     print('文件%s全文的内容如下:' % file_name)
 
 -     print(f.read())
 
 - elif begin == '' and end != '':
 
 -     print('文件%s从第开头到第%s行的内容如下:' % (file_name, end))
 
 -     for i in range(int(end)):
 
 -         print(f.readline(), end ='')
 
 - elif begin != '' and end == '':
 
 -     print('文件%s从第%s行到末尾的内容如下:' % (file_name, begin))
 
 -     for e in range(int(begin)-1):
 
 -         f.readline()
 
 -     print(f.read())
 
 - else:
 
 -     lines = int(end) - (int(begin)-1)
 
 -     print('文件%s从第%s行到第%s行的内容如下:' % (file_name, begin, end))
 
 -     for t in range(int(begin)-1):
 
 -         f.readline()
 
 -     for r in range(lines):
 
 -         print(f.readline(), end ='')
 
  
- f.close()
 
 -         
 
 
  复制代码 
 
大佬们有个小问题,能够顺利运行的是这个 
for t in range(int(begin)-1): 
        f.readline() 
for r in range(lines): 
        print(f.readline(), end ='') 
这一步我一开始是下面这样写的,把下面的for缩进了,结果完全不一样,但是不知道为什么 
for t in range(int(begin)-1): 
        f.readline() 
        for r in range(lines): 
                print(f.readline(), end ='')
 本帖最后由 Twilight6 于 2020-8-8 23:15 编辑 
 
举个简单的例子: 
 
- for x in range(10):
 
 -     for y in range(5):
 
 -         print(x,y)
 
  复制代码 
 
这个 for 循环就是每当你 外部的 for x in range(10) 循环一次,内部 for 就循环 5 次 
 
即你内部的 for y in range(5) 全部循环结束才会开始下一次的循环,所以你仅仅一个缩进就使得两个代码有本质的差别 
  
for t in range(int(begin)-1): 
        f.readline() 
for r in range(lines): 
        print(f.readline(), end ='')  
这个是先 for t 的循环全部结束,然后才轮到 for r 的循环,两者循环次数相加才 begin-1+lines(Ps:这里就省略 int 了哈~) 
 
  
for t in range(int(begin)-1): 
        f.readline() 
        for r in range(lines): 
                print(f.readline(), end ='')  
而这个代码是, for t 的循环只要执行一次,内部的 for r 循环就要执行 lines 次,此时g该循环次数为 (begin-1)*lines 
 
 
 
 
 |   
 
 
 
 |