鱼C论坛

 找回密码
 立即注册
查看: 1548|回复: 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后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出

可能是指针问题,就是说你上一次执行完后,文件指针停在最后面,那么再一次读取的时候就没内容了,因为已经在最后面了
with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
    for each in file:
        print(each)
    print(file.read())
结果是
哒哒哒,啦啦啦,略略略
加个指针代码
with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
    for each in file:
        print(each)
    file.seek(0)
    print(file.read())
输出结果
哒哒哒,啦啦啦,略略略
哒哒哒,啦啦啦,略略略
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-7 18:43:12 | 显示全部楼层
注释掉的话,就执行下一句,忽略本句了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

else  下面的 ‘ # ‘  后面的代码不运行  直接从 star = 0  往后运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可能是指针问题,就是说你上一次执行完后,文件指针停在最后面,那么再一次读取的时候就没内容了,因为已经在最后面了
with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
    for each in file:
        print(each)
    print(file.read())
结果是
哒哒哒,啦啦啦,略略略
加个指针代码
with open(r"E:\test\list2.txt",encoding = "utf-8") as file:
    for each in file:
        print(each)
    file.seek(0)
    print(file.read())
输出结果
哒哒哒,啦啦啦,略略略
哒哒哒,啦啦啦,略略略
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢 ,明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

积分不够加不了好友
抱歉,您目前没有权限添加好友,点击这里查看权限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

加个QQ问个问题644800918
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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