今天的程序是007解碼。故事背景如下:http://www.ce.cn/culture/history/200812/26/t20081226_17800535.shtml
在昨天的基礎(chǔ)上,線人編碼以后,007拿到一串代碼,他就開始對著書翻。每7個數(shù)字對應(yīng)翻到多少頁多少行第幾個詞。把這組數(shù)字對應(yīng)的詞都找到以后,007就知道碰頭的時間和地點了。

圖片發(fā)自簡書App
其實我一開始是想處理這樣一個簡化問題:假設(shè)007已經(jīng)找到了單詞的頁數(shù)和行數(shù),就在一行內(nèi)通過編碼把單詞找出來。我想用find函數(shù),但是我又沒有辦法找到這個單詞確切的是從哪一位開始哪一位結(jié)束的。因為每一個單詞長短都不一樣啊。我于是又想找空格,比如說Beijing是這一行的第8個單詞,那我找到第7個空格的所在位和第8個空格的所在位,它們中間的那個字符串不就是我要找的單詞嗎?但是很可惜我還是沒想到這個程序該怎么寫。所以它就變成了如下的一個程序,中間標(biāo)藍(lán)的一塊是我假定的書上的句子,單詞跟數(shù)字鏈接不上。

圖片發(fā)自簡書App
那我就只好把問題再簡化,用簡單粗暴的方式直接賦值。這樣通過數(shù)字就能找到單詞了,這就是第一張圖。在輸出的時候,我考慮到007只需要得到關(guān)于地點和時間的單詞,不需要那些數(shù)字。于是我就在函數(shù)定義的時候把print(k,v)改成了print(v),這樣就只會輸出007需要的單詞了。