昨天Paradoxical亂翻python安裝目錄的時候,看到了一個叫this.py的文件。在好奇心的驅使下打開了它。
python
emmmm……徹底看不懂,只能請教一下小哥哥了。
app
我:小哥哥,你知不知道那個this.py是什麼嗎?ide
慘綠青年:知道啊,就是python之禪。
this
我:禪是什麼鴨?
spa
慘綠青年:真懶……「禪,是一種基於「靜」的行爲,源於人類本能,通過古代先民開發,造成各類系統的修行方法,並存在於各類教派。先秦時期就有關於此種行爲的記載,可是未有固定稱呼。直至印度詞彙jana傳入,漢語音譯爲「禪那」,後世便以「禪」字稱謂此類行爲」——百度百科。python之禪就是指python的修行方法。你試下運行這個文件。翻譯
因而Paradoxical就運行了這個文件看看。
設計
我:小哥哥,你給我翻譯翻譯中文是什麼唄。
3d
慘綠青年:唉,真是服了你了。給你上網找一個吧。
orm
我:有一點點懂了,好像好厲害的樣子。那這段文字是怎麼出來的鴨?
blog
慘綠青年:這就要說到ascii(美國信息交換標準代碼)了。以下圖所示,不一樣的符號對應不一樣的ascii,大寫字母A到Z的10進制ascii是65到90,小寫字母a到z的10進制ascii是97到122。chr()輸入10進制數字參數便可獲取對應的字符。
慘綠青年:因此第一層循環循環兩次分別把65和97賦值給c,第二層循環循環26次,就是遍歷26個大寫字母和26個小寫字母。
慘綠青年:第二層循環裏的語句就是把映射關係存入字典d。(i + 13)%26就是偏移量,加上第一層循環中的c變量就能經過chr()取得對應的字母。最後遍歷s裏的字符從字典d取出對應的值後拼接成字符串,就成了你最終看到的結果。
我:爲何i要加13鴨?
慘綠青年:由於他設計的時候就是把ascii碼偏移了13位啊!
我:哈~原來是這樣鴨~