鱼C论坛

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

[已解决]第29讲课后3题

[复制链接]
发表于 2021-5-7 18:07:15 | 显示全部楼层 |阅读模式

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

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

x
为什么else那里注释掉的写法会输出空
代码如下


def fun(star, end):
    for i in range(star,end):
        print (file_list[i], end = '')
        
file_name = input('请输入要打开的文件(C:\\test.txt):')
line = input ('请输入要显示的行数【格式如12:21 或  :21 或 21: 】:')
file = open(file_name)
file_list = list(file)
(star, end) = line.split(':')
if star != '' and end != '':
    star = int(star)
    end = int (end)
    fun(star, end)
elif star == '' and end != '':
    star = 0
    end = int(end)
    fun(star, end)
elif star != '' and end == '':
    star = int(star)
    end = len(file_list)
    fun(star, end)
else:
    #print(file.read())
    #为什么上边的这个不可以
    star = 0
    end = len(file_list)
    fun(star, end)
file.close()




最佳答案
2021-5-11 10:53:47
sxhqyxc 发表于 2021-5-10 10:31
现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出

可能是指针问题,就是说你上一次执行完后,文件指针停在最后面,那么再一次读取的时候就没内容了,因为已经在最后面了
  1. with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
  2.     for each in file:
  3.         print(each)
  4.     print(file.read())
复制代码

结果是
  1. 哒哒哒,啦啦啦,略略略

复制代码

加个指针代码
  1. with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
  2.     for each in file:
  3.         print(each)
  4.     file.seek(0)
  5.     print(file.read())
复制代码

输出结果
  1. 哒哒哒,啦啦啦,略略略
  2. 哒哒哒,啦啦啦,略略略
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-7 18:43:12 | 显示全部楼层
注释掉的话,就执行下一句,忽略本句了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-8 12:26:12 | 显示全部楼层
你想表达什么?注释掉就变成注释了啊,不会当成代码执行了呀.怎么会输出空?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-10 10:31:56 | 显示全部楼层
白本羽 发表于 2021-5-8 12:26
你想表达什么?注释掉就变成注释了啊,不会当成代码执行了呀.怎么会输出空?

现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-10 11:59:40 | 显示全部楼层
sxhqyxc 发表于 2021-5-10 10:31
现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出

else  下面的 ‘ # ‘  后面的代码不运行  直接从 star = 0  往后运行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 10:53:47 | 显示全部楼层    本楼为最佳答案   
sxhqyxc 发表于 2021-5-10 10:31
现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出

可能是指针问题,就是说你上一次执行完后,文件指针停在最后面,那么再一次读取的时候就没内容了,因为已经在最后面了
  1. with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
  2.     for each in file:
  3.         print(each)
  4.     print(file.read())
复制代码

结果是
  1. 哒哒哒,啦啦啦,略略略

复制代码

加个指针代码
  1. with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
  2.     for each in file:
  3.         print(each)
  4.     file.seek(0)
  5.     print(file.read())
复制代码

输出结果
  1. 哒哒哒,啦啦啦,略略略
  2. 哒哒哒,啦啦啦,略略略
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-11 10:55:48 | 显示全部楼层
白本羽 发表于 2021-5-11 10:53
可能是指针问题,就是说你上一次执行完后,文件指针停在最后面,那么再一次读取的时候就没内容了,因为已经在 ...

谢谢 ,明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 11:24:18 | 显示全部楼层

积分不够加不了好友
  1. 抱歉,您目前没有权限添加好友,点击这里查看权限
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-11 11:28:27 | 显示全部楼层
白本羽 发表于 2021-5-11 11:24
积分不够加不了好友

加个QQ问个问题644800918
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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