今天的程序是007解码。故事背景如下:http://www.ce.cn/culture/history/200812/26/t20081226_17800535.shtml
在昨天的基础上,线人编码以后,007拿到一串代码,他就开始对着书翻。每7个数字对应翻到多少页多少行第几个词。把这组数字对应的词都找到以后,007就知道碰头的时间和地点了。
其实我一开始是想处理这样一个简化问题:假设007已经找到了单词的页数和行数,就在一行内通过编码把单词找出来。我想用find函数,但是我又没有办法找到这个单词确切的是从哪一位开始哪一位结束的。因为每一个单词长短都不一样啊。我于是又想找空格,比如说Beijing是这一行的第8个单词,那我找到第7个空格的所在位和第8个空格的所在位,它们中间的那个字符串不就是我要找的单词吗?但是很可惜我还是没想到这个程序该怎么写。所以它就变成了如下的一个程序,中间标蓝的一块是我假定的书上的句子,单词跟数字链接不上。
那我就只好把问题再简化,用简单粗暴的方式直接赋值。这样通过数字就能找到单词了,这就是第一张图。在输出的时候,我考虑到007只需要得到关于地点和时间的单词,不需要那些数字。于是我就在函数定义的时候把print(k,v)改成了print(v),这样就只会输出007需要的单词了。