sxhqyxc 发表于 2021-5-7 18:07:15

第29讲课后3题

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


def fun(star, end):
    for i in range(star,end):
      print (file_list, 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()




YouCam 发表于 2021-5-7 18:43:12

注释掉的话,就执行下一句,忽略本句了。

白本羽 发表于 2021-5-8 12:26:12

你想表达什么?注释掉就变成注释了啊,不会当成代码执行了呀.怎么会输出空?

sxhqyxc 发表于 2021-5-10 10:31:56

白本羽 发表于 2021-5-8 12:26
你想表达什么?注释掉就变成注释了啊,不会当成代码执行了呀.怎么会输出空?

现在else后面没有注释掉的和已经注释掉的是两种写法,为什么注释掉的输出空,而没注释掉的可以正常输出

dragon_xiao 发表于 2021-5-10 11:59:40

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

else下面的 ‘ # ‘后面的代码不运行直接从 star = 0往后运行

白本羽 发表于 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())
输出结果
哒哒哒,啦啦啦,略略略
哒哒哒,啦啦啦,略略略

sxhqyxc 发表于 2021-5-11 10:55:48

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

谢谢 ,明白了

白本羽 发表于 2021-5-11 11:24:18

sxhqyxc 发表于 2021-5-11 10:55
谢谢 ,明白了

积分不够{:5_104:}加不了好友抱歉,您目前没有权限添加好友,点击这里查看权限

sxhqyxc 发表于 2021-5-11 11:28:27

白本羽 发表于 2021-5-11 11:24
积分不够加不了好友

加个QQ问个问题644800918
页: [1]
查看完整版本: 第29讲课后3题