我总得懂点什么 发表于 2021-2-5 13:24:32

《课后作业第二十九讲》编程题第3小题自己写的答案


def abc():
    print('请输入要打开的文件:')
    name = input()
    print('请输入需要显示的行数【格式如 13:21】:')
    lines = input()
    f = open(name)
    count = 0
    lst = lines.split(':', 1)
    if lst != '':
      num1 = int(lst)
    else:
      num1 = 1
    if lst != '':
      num2 = int(lst)
    else:
      for eachline in f:
            count += 1
      length = count
      num2 = length

    a = 0
    for each in f:
      a += 1
      if num1 <= a <= num2:
            print(each)
    f.close()


abc()


            这是我自己的答案 。可是在 输入行数 为 (2 :) 这一类型时,却没有结果返回
file:///C:/Users/li/Desktop/1.png

               大写的求助!阿里嘎多!

洋洋痒 发表于 2021-2-5 13:38:10

def abc():
    print('请输入要打开的文件:')
    name = input()
    print('请输入需要显示的行数【格式如 13:21】:')
    lines = input()
    f = open(name)
    count = 0
    lst = lines.split(':', 1)
    if lst != '':
      num1 = int(lst)
    else:
      num1 = 1
    if lst != '':
      num2 = int(lst)
    else:
      for eachline in f:
            count += 1
      length = count
      num2 = length

    f.seek(0,0) #把指针移到初始位置

    a = 0
    for each in f:
      a += 1
      if num1 <= a <= num2:
            print(each)
    f.close()


abc()

洋洋痒 发表于 2021-2-5 13:40:03

因为你lst == '' 的时候for eachline in f:所以指针跑最后去了所以什么都没有

洋洋痒 发表于 2021-2-5 13:42:29

所以加一句f.seek(0,0) #把指针移到初始位置 就可以了

我总得懂点什么 发表于 2021-2-6 10:17:37

洋洋痒 发表于 2021-2-5 13:40
因为你lst == '' 的时候for eachline in f:所以指针跑最后去了所以什么都没有

妙呀{:5_109:}
页: [1]
查看完整版本: 《课后作业第二十九讲》编程题第3小题自己写的答案