每日算法题及答案(从零之049文本处理)

有些事情,看起来很简单,但做起来却挺麻烦。再上一章,我们设计出了算法,算法要落到实处,那就必须转化为程序的语句,在转化的过程中,我们有可能还要继续调整算法。二者的互动,我们可以称之为知行合一。

由于过程比较复杂,我们将分多个章节,多个步骤来写。分别用A、B、C等来标注。

关键词:末行,分解为元素

下面我们根据算法,把它还原为程序。

首先,我们要找出文本文件中的最后一行,最后行也可以叫末行,这一行,必须是有内容的,而不是空行。于是,我们把原来的程序的有关部分改造成下面的样子

每日算法题及答案(从零之049文本处理)(1)

在上图中

第13行,我们预设了末行这个变量

第18行,在循环中,我们假设每一行都是末行,不停的迭代,当退出循环的时候,最后的值就是末行了。

第21行,我们显示一下内容进行测试

每日算法题及答案(从零之049文本处理)(2)

可以看到,测试的结果是正确的。

第二,我们要判断末行是不是记录阅读次数的那一行,怎么判断呢?

我们要知道,记录阅读次数那一行的格式

阅读 2 次

这个格式是我们指定的,阿拉伯数字前后都有空格,于是我们可以采取末行分解成元素的方式进行判断

每日算法题及答案(从零之049文本处理)(3)

第21行,我们将末行,用空格把它分隔成列表,放到末元里边。

第22行,我们看第一个元素内容是不是阅读两个字,这样我们就得出了结果。

下面我们进一步改造,第一次阅读文本文件的时候,当然没有阅读两个字,于是就是否的情况

每日算法题及答案(从零之049文本处理)(4)

第25行,我们直接设置一个阅读记录的变量,给它一个值,为什么是两次呢?这次我们已经打开了,应该并没有显示,当下次显示的时候,就应该记录为两次,因为打开了两次。

现在我们来看一下另外一种情况,假设文本文件中已经有了记录阅读次数的这一行。如何处理?

我们把程序改造成下面的样子

每日算法题及答案(从零之049文本处理)(5)

第23行,把列表里的次数的数值取出来,转化为整数,然后加一并由变量次数来记录。

(这时列表中的内容应该是像

['阅读','2','次']

这个样子的,这是对上一行的补充说明)

第24行,做成我们需要的格式,记录到阅读记录中。

上面的这些都是准备工作,由于后面的内容比较繁琐,下一章继续,本次内容先到这里。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页