鱼C论坛

 找回密码
 立即注册
查看: 1224|回复: 8

029课第三题的问题

[复制链接]
发表于 2019-6-14 18:25:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面是自己写的代码,运行着感觉是正确,求各位给看下,有什么问题吗?谢谢!
  1. file1=input('请输入要打开的文件:')
  2. f=open(file1)
  3. list1=[]
  4. count=input('请输入需要显示的行数【格式如13;12 或 ;21 或 21;】:')
  5. temp=count
  6. list1=count.split(';')
  7. if '' not in list1:
  8.     print('文件 %s从第 %d行到第 %d行的内容如下' % (file1,int(list1[0]),int(list1[1])))
  9.     for each in range(int(list1[1])):
  10.         read_file=f.readline()
  11.         if each>=(int(list1[0])-1):
  12.             print(read_file)
  13. else:
  14.     if list1[0]=='':
  15.         print('文件 %s从开头到第 %d行的内容如下'% (file1,int(list1[1])))
  16.         for each in range(1,(int(list1[1])+1)):
  17.             read_file=f.readline()
  18.             print(read_file)
  19.    
  20.     else:
  21.         print('文件 %s从第 %d行到末尾的内容如下' % (file1,int(list1[0])))
  22.         for i in range(1,int(list1[0])):
  23.             read_file=f.readline()
  24.         for each in f:
  25.             read_file=f.readline()
  26.             print(read_file)        
  27. f.close()

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-14 20:19:36 | 显示全部楼层
你不说错在哪里?看啥呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-14 21:06:32 | 显示全部楼层
Krant5 发表于 2019-6-14 20:19
你不说错在哪里?看啥呀

运行没什么错误,打印什么的,感觉也是正常,就是想让大家帮忙看下有什么欠缺的不
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 16:12:10 | 显示全部楼层
跟我想的是一样的,只是我没实现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 17:00:45 | 显示全部楼层
Krant5 发表于 2019-6-14 20:19
你不说错在哪里?看啥呀

我根据楼主的写了一个代码:
file_name = input('file name:')
f = open(file_name)
lines = input('行数:【example: 5:7 or :10 or 7:】')

lines = str(lines)
list1 = lines.split(':')
a = int(list1[0])
b = int(list1[1])

if list1[0] != ' ' and list1[1] != ' ':
    print('content of %s from line %d to line %d is as follow:' % (file_name,a,b))
    for each in range(b)):
        f.readline()
        if each >= a-1:
            print(f.readline())
            
elif list1[0] == ' ' and list1[1] != ' ':
    print('content of %s from start to line %d is as follow:' % (file_name, b))
    for each in range(b+1):
        print(f.readline)

elif list1[0] != ' ' and list1[1] == ' ':
    print('content of %s from line %d to the end is as follow:' % (file_name, a))
    for each in range(a):
        f.readline()
    for i in f:
        print(f.readline())

elif list1[0] == ' ' and list1[1] == ' ':
    print('the article is:')
    for each_line in f:
        print(each_line)

我尝试的行数是3:10
结果是从第4行开始的,而且输出第4,6,8,12,14,16行,我的文档只有16行。。。。
我也把我的ab改成了楼主的形式,也不行。
崩溃
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-27 20:22:24 | 显示全部楼层
本帖最后由 年轮荡漾 于 2019-6-27 20:23 编辑
小笨蛋学Python 发表于 2019-6-27 17:00
我根据楼主的写了一个代码:
file_name = input('file name:')
f = open(file_name)

  1. if list1[0] != ' ' and list1[1] != ' ':
  2.     print('content of %s from line %d to line %d is as follow:' % (file_name,a,b))
  3.     for each in range(b)):
  4.         f.readline()  #这个位置,你改成read_line=f.readline()
  5.         if each >= a-1:
  6.             print(read_line)]   #   这个位置这样,应该就可以了
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 12:35:06 | 显示全部楼层

谢谢帮忙,请问为什么直接写f.readline()不行,但是read_file = f.readline()就可以了???
BTW 你的代码如果是‘number;’的形式的话是不能正确实现的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 13:50:12 | 显示全部楼层
小笨蛋学Python 发表于 2019-6-28 12:35
谢谢帮忙,请问为什么直接写f.readline()不行,但是read_file = f.readline()就可以了???
BTW 你的代 ...

直接f.readline(),就是等于再读一行;比如说:
  1. read_file=f.readline()
  2. print(read_file) #这个会打印刚才上面读的那一行
  3. print(f.readline())#这个会打印刚才那一行下面一行
复制代码


关于那个number;不能实现的问题,当时写的时候才刚接触这个,懵逼的很,判定条件都没弄好,,用的方法也很繁琐,这两天又重新写过一次了,真是这里没有改了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 16:14:46 | 显示全部楼层
年轮荡漾 发表于 2019-6-28 13:50
直接f.readline(),就是等于再读一行;比如说:

关于那个number;不能实现的问题,当时写的时候才刚接 ...

好的好的 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-16 09:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表