每日算法题及答案(从零之049文本处理)
有些事情,看起来很简单,但做起来却挺麻烦。再上一章,我们设计出了算法,算法要落到实处,那就必须转化为程序的语句,在转化的过程中,我们有可能还要继续调整算法。二者的互动,我们可以称之为知行合一。
由于过程比较复杂,我们将分多个章节,多个步骤来写。分别用A、B、C等来标注。
关键词:末行,分解为元素
下面我们根据算法,把它还原为程序。
首先,我们要找出文本文件中的最后一行,最后行也可以叫末行,这一行,必须是有内容的,而不是空行。于是,我们把原来的程序的有关部分改造成下面的样子
在上图中
第13行,我们预设了末行这个变量
第18行,在循环中,我们假设每一行都是末行,不停的迭代,当退出循环的时候,最后的值就是末行了。
第21行,我们显示一下内容进行测试
可以看到,测试的结果是正确的。
第二,我们要判断末行是不是记录阅读次数的那一行,怎么判断呢?
我们要知道,记录阅读次数那一行的格式
阅读 2 次
这个格式是我们指定的,阿拉伯数字前后都有空格,于是我们可以采取末行分解成元素的方式进行判断
第21行,我们将末行,用空格把它分隔成列表,放到末元里边。
第22行,我们看第一个元素内容是不是阅读两个字,这样我们就得出了结果。
下面我们进一步改造,第一次阅读文本文件的时候,当然没有阅读两个字,于是就是否的情况
第25行,我们直接设置一个阅读记录的变量,给它一个值,为什么是两次呢?这次我们已经打开了,应该并没有显示,当下次显示的时候,就应该记录为两次,因为打开了两次。
现在我们来看一下另外一种情况,假设文本文件中已经有了记录阅读次数的这一行。如何处理?
我们把程序改造成下面的样子
第23行,把列表里的次数的数值取出来,转化为整数,然后加一并由变量次数来记录。
(这时列表中的内容应该是像
['阅读','2','次']
这个样子的,这是对上一行的补充说明)
第24行,做成我们需要的格式,记录到阅读记录中。
上面的这些都是准备工作,由于后面的内容比较繁琐,下一章继续,本次内容先到这里。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com