那同樣就是說,我們前面有介紹過這個 chr,對不對?chr(65) 是 'A' 對不對?你用
ord 然後就會告訴你說它的內部編碼是 65,就跟中文一樣,就是你給它
中文的這個字串,ord ('鴨'),它就會告訴你它的內部編碼是 40232。
然後呢,你就問它說,你叫它把 40232 的這個
編碼的字串,它就會告訴你是'鴨'。
所以 chi 的話,其實前面我們有介紹過的。
那我們這邊就是告訴你說它 它中文也 work 的。
所以有了這個東西之後呢, 我們就來看一下。
我們事實上可以做一個,這個簡單的傳遞密碼的一個 小遊戲。
那怎麼說呢? 就是說呢,因為我們知道說呢,這個
字串是有很多這個 字元組成的。
每個字元都有內部的編碼嘛,本身事實上我們可以用這個
我們就是做一個簡單的小遊戲,就是說我們用內部的編碼來傳遞訊息這件事情。
想象我們類似像間諜這樣子,我們不想讓人家直接看到這個訊息是什麼,對不對? 所以呢,我們現在有個訊息。
訊息是這個,晚上 七點水源星巴克見,晚上七點水源星巴克見。
對不對,好 那你要傳給你的這個約會的對象。
那所以呢,我們怎麼做這個事情呢?就是把 我們想要把這個東西轉換成一個內部的編碼,這樣大家比較看不懂,對不對?好,
那所以怎麼做呢?我們就把這個 message,一個字一個字抓出來,跑一個 for
迴圈,然後呢,這個 for 迴圈,for achr in msg 的話,它就會把 這個,一個一個的 character 抓出來。
每一個 character 呢,用 ord 把它這個轉成內部的編碼。
然後呢,我們如果把它這個 print 出來之後呢, 它就會變成類似像這樣子。
所以第一個 26202 事實上就是晚上的晚,再就是上,
這個是 7,這是點,對不對?星巴克,
水源星巴克見,對不對?好,那,所以這個就是我們到時候
我們就可以把這一串東西傳給你的這個約會對象,對不對?那在這邊有幾個這個 細節需要跟大家說。
第一個就是說這個 looping 的這個事情, 對不對? looping
就是說,你是,你那個訊息就是說,你是透過一個 for 迴圈,把一個一個的 character 拿來處理。
好,那另外一個比較特別的地方就是這個 print,跟平常你看到的 print 不太一樣。
這個 print,然後 print 這個 ord(achr) 之後,後面逗點寫
end 等於一個空,一個空白,這什麼意思呢?
那這個部分呢,就是跟你說,這個 print 它預設,就是說
印完你要印的東西之後呢,它後面會加換行。
所以它跳到下一行去,但是呢,你如果不想 讓它做這個事情。
比如說,你想讓它把所有訊息通通印在同一行裡面, 那你這個,你就可以說這個 end
等於這個空,空白的 一個空格,這樣子的話,它印完這個之後會加個空格。
然後再印下一個。
對不對,那這樣子的話,所有的就都會在同一個 同一欄、 同一行裡面。
最後再印一個換行就好了。
所以這是為什麼我們這邊有, 這邊是這個樣子,所以你現在可以知道為什麼最後又加了一個
print, 然後是空括號,這樣子的話,它就會印出一個換行,所以最後這個,
這些東西印完之後呢,它就會印出一個換行,在下面我們就把它 這個 copy 出來了。
所以這個是這個部分,print 部分。
那接下來呢,你就把它傳給你的這個約會的對象。
那你的約會的對象拿到這一串東西,你要怎麼解碼呢? 怎麼解碼,這就是一串數字啊。
那這裡看起來就像密碼,對不對? 那密碼要怎麼處理呢?所以呢,我們如果知道它怎麼來的,我們就知道它怎麼解碼,對不對?-
所以這一串東西基本上就是用空白 切開來的一些這個內部的編碼。
那所以解碼怎麼做呢?我們首先是把這一串東西, 把它擺到一個字串裡面,包含這個中間的這些所有的空白,對不對?
然後呢,我們就可以用我們學過的這個 split 這個方法,split
這個方法就把它 把這個用空白,把它切割成一個一個的子字串。
對不對?好,那這時候呢,這個 tmpcode 就變成一個 list,
這麼一個 list,長度就是看你這邊有多少個這個
code, 然後每一個裡面就是這個 code,但是這個裡面這個
code 呢,目前是 還是這個字串的型別,字串的型別。
那所以你如果把這個 tmpcode 印出來的話就是 像這樣子,對不對?每一個
element 是一個字串, 那我們需要做後續的處理。