好好学不玩手机 发表于 2020-2-23 12:33:57

第029讲动动手02题

题目要求:2. 编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上,程序实现如图:
我的代码:
def file(file_name,line_name):
    print('文件',file_name,'前',line_name,'行的内容如下')
    f=open(file_name)
    A=(list(f))
    L=len(A)
    for i in range(L):
      print(f.readline(), end= '')

    f.close()
file_name=input('请输入文件名')
line_name=input('请输入显示行数')
file(file_name,line_name)

但每次运行都是空的,大佬们看看是哪里有问题呀?

冬雪雪冬 发表于 2020-2-23 12:50:58

    for i in range(L):
      print(f.readline(), end= '')
改为
    for i in range(L):
      print(A, end= '')
这步(A=(list(f)))已经读到文件尾了
再readline就没有内容了

ba21 发表于 2020-2-23 12:54:19

list(f) 已转成list 何必再 f.readline()???? list(f)后指针就已针指向尾了。
以是list那就直接对list操作不更好?
def file(file_name,line_name):
    print('文件',file_name,'前',line_name,'行的内容如下')
    f=open(file_name)
    A=list(f)
    f.close()
    for i, s in enumerate(A):
      print(i , s)
      if i==int(line_name)-1:
            break

   
file_name=input('请输入文件名')
line_name=input('请输入显示行数')
file(file_name,line_name)

好好学不玩手机 发表于 2020-2-23 13:10:46

冬雪雪冬 发表于 2020-2-23 12:50
for i in range(L):
      print(f.readline(), end= '')
改为


哦哦,原来是这样,我之前就是这个针指还不清楚,谢谢!
页: [1]
查看完整版本: 第029讲动动手02题