鱼C论坛

 找回密码
 立即注册
查看: 1215|回复: 4

[已解决]计算机二级的题,求大佬答疑

[复制链接]
发表于 2019-9-13 19:17:02 | 显示全部楼层 |阅读模式

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

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

x
题目如图,答案给的参考代码是这样
fi = open("论语.txt", "r")
fo = open("论语-原文.txt", "w")
flag=False
for line in fi:
    if"【" in line:
        flag=False
    if "【原文】" in line:
        flag=True
        continue
    if flag==True:
        fo.write(line.lstrip())
fi.close()
fo.close()

我自己写的代码是这样
fi = open("论语.txt", "r")
fo = open("论语-原文.txt", "w")
flag=False
for line in fi:
    if "【原文】" in line:
        flag=True
        continue
    if flag==True:
        fo.write(line.lstrip())
        flag=False
fi.close()
fo.close()
我运行出来什么都没有,附件的TXT文本如下,希望大佬帮忙解惑,谢谢Thanks♪(・ω・)ノ
最佳答案
2019-9-13 20:39:04
你运行没有任何信息,这个原因是你的flag=True这个赋值语句之后接了continue,所以跳过了for循环里后面所有的语句,所以fo.write就没有运行。这个就要把continue去掉

但是你写的这个代码如果光去掉continue,那么得到的结果应该是一行一行的【原文】。因为你 fo.write(line.lstrip())后面跟了flag=False。这个flag=False放的地方不对,也需要改。。。这就是为什么答案里有个判断 if"【" in line:
捕获.PNG

TXT文本.zip

51.47 KB, 下载次数: 3

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-13 20:39:04 | 显示全部楼层    本楼为最佳答案   
你运行没有任何信息,这个原因是你的flag=True这个赋值语句之后接了continue,所以跳过了for循环里后面所有的语句,所以fo.write就没有运行。这个就要把continue去掉

但是你写的这个代码如果光去掉continue,那么得到的结果应该是一行一行的【原文】。因为你 fo.write(line.lstrip())后面跟了flag=False。这个flag=False放的地方不对,也需要改。。。这就是为什么答案里有个判断 if"【" in line:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-14 21:17:17 | 显示全部楼层
facevoid 发表于 2019-9-13 20:39
你运行没有任何信息,这个原因是你的flag=True这个赋值语句之后接了continue,所以跳过了for循环里后面所有 ...

谢谢您的解答。但是我想问一下,continue跳出当前循环进入到下次循环的时候,flag=True,那为什么不会执行fo.write这一行呢?也就是为什么【原文】的下一行为什么不会写入文件呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-14 23:54:34 From FishC Mobile | 显示全部楼层
lingxiao 发表于 2019-9-14 21:17
谢谢您的解答。但是我想问一下,continue跳出当前循环进入到下次循环的时候,flag=True,那为什么不会执 ...

你可以看一下读取的文件,“原文”的下一行可能是空行,你说的这行代码运行了但是写了一行一行的空行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-15 14:13:12 | 显示全部楼层
facevoid 发表于 2019-9-14 23:54
你可以看一下读取的文件,“原文”的下一行可能是空行,你说的这行代码运行了但是写了一行一行的空行

我看了一下原来的TXT文本,发现它每行之间都有一行空格,谢谢您的解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 06:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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