| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
请问零基础入门学习Python动动手3中用户随意输入需要显示的行数,我把源代码改为了: 
def file_view(file_name,line_num): 
    if line_num.strip()==':': 
        begin='1' 
        end='-1' 
 
    (begin,end)=line_num.split(':') 
 
    if begin=='' and end!='':  #这一行多加了 and end!='' 
         begin='1' 
    if end=='' and begin!='': #这一行多加了 and begin!='' 
         end='-1' 
 
    if begin=='1' and end=='-1': 
         prompt='的全文' 
    elif begin=='1': 
         prompt='从开始到第%s行'%end 
    elif end=='-1': 
         prompt='从第%s行到结束'%begin 
    else: 
         prompt='从第%s行到第%s行'%(begin,end) 
 
    print('文件%s%s的内容如下: '%(file_name,prompt)) 
 
    begin=int(begin)-1 
    end=int(end) 
    lines=end-begin 
 
    f=open(file_name) 
 
    for i in range(begin): #用于消耗第begin(没减1之前)行之前的东西 
         f.readline() 
    if lines<0: 
         print(f.read()) 
    else: 
         for j in range(lines): 
             print(f.readline(),end='') 
 
    f.close() 
file_name=input('请输入你想要打开的文件(C:\\\\test.txt): ') 
line_num=input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或:】:') 
file_view(file_name,line_num) 
 
即代码的第6行(用红色标记了):我多加了and end!=''     代码第8行(用红色标记了):我多加了 and begin!=''  。。。为什么在代码运行时候我输入 : 会报错而不是打印出全文呢   求解决,万分感谢
- # -*- coding:gbk -*-
 
 - def file_view(file_name , line_num):
 
 -     line_num = line_num . strip()
 
 -     if ':' in line_num :
 
 -         begin , end = line_num . split(':')
 
 -         if not len(begin) :
 
 -             begin = '1'
 
 -         if not len(end):
 
 -             end = '-1'
 
 -         begin , end = int(begin) , int(end)
 
 -         if (begin > 0 and end >= begin) or end == - 1:
 
 -             if begin == end:
 
 -                 prompt = '第 %d 行' % begin
 
 -             else:
 
 -                 if begin == 1:
 
 -                     prompt = '从开始'
 
 -                 else:
 
 -                     prompt = '从第 %d 行' % begin
 
 -                 if end == -1:
 
 -                     prompt += '到结束'
 
 -                 else:
 
 -                     prompt += '到第 %d 行' % end
 
 -             print(prompt)
 
 -             f = open(file_name)
 
 -             c = 0
 
 -             for each in f:
 
 -                 c += 1
 
 -                 if c >= begin and (c <= end or end == -1) :
 
 -                     print(each[:-1])
 
 -                 elif end != -1 and c > end:
 
 -                     break
 
 -             f . close()
 
 -         else:
 
 -             print('输入参数数值无效!')
 
 -     else:
 
 -         print('输入参数格式错误!')
 
  
- file_name=input('请输入你想要打开的文件(C:\\test.txt): ')
 
 - line_num=input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或:】:')
 
 - file_view(file_name,line_num)
 
  复制代码 
 
 
 |   
 
 
 
 |