穿越Python Challenge(0-5)
一個有趣的網站: http://www.pythonchallenge.com/
集娛樂與學習於一體,在開動腦筋闖關的過程中,不但擴充套件了思維,還對Python加深了理解。
一共33關,每闖過一關都可以在提示下檢視作者給出的Solution。
第0關(指導關):
出現一幅畫面,上面寫著2**38,教你如何進入下一關。
通過Python客戶端,可以簡單計算出2**38 = 274877906944
那麼按照提示只要將該關網址中0.htm改為274877906944.html 即可
第1關:字元轉換
圖片上給出了三對字母“K->M, O->Q, E->G",通過分析知道這是一個簡單的字元轉換,轉換規則是new_c=chr(ord(old_c)+2) 超過自動迴轉。
我們可以看到,該關的網址為http://www.pythonchallenge.com/pc/def/map.html。那麼按照指導關給出的策略,只要將map替換為ocr即可通關。但如果僅是如此,那麼就完全撇開了Python,該關將徹徹底底地退化為一般的腦筋急轉彎。
實際上在圖片下有一串看不懂的字串,按照上述字元轉換規則,這應該可以通過python做簡單處理,從而得到可識別的字串,程式碼如下:
或者使用下面的簡單方法:
執行指令碼,我們將得到下面一段描述:
”i hope you didnt translate it by hand. thats what computers are for.
doing it in by hand is inefficient and that's why this text is so long.
using string.maketrans() is recommended. now apply on the url. “
當我們通關之後,通過http://www.pythonchallenge.com/pcc/def/ocr.html 將得到更多關於本關的資訊。
第2關:提取有效資訊
該關圖片上展示了一本書,而圖下有一段話“ recognize the characters. maybe they are in the book, but MAYBE they are in the page source ”。通過仔細觀察book上的內容,發現無法識別;那麼有效資訊就應該在page source中。開啟頁面原始碼,可以看到下面的資訊:
通過給出的提示“find rare characters in the mess below”,我們可以知道線索就在第二個<!-- -->中,不失一般性,設計python程式碼如下:
執行指令碼得到“e q u a l i t y”,那麼通關網址將是 http://www.pythonchallenge.com/pc/def/equality.html
第3關:正規表示式
該關圖片下有一句話“ One small letter, surrounded by EXACTLY three big bodyguards on each of its sides. ” 也就是說有一個小寫字母,兩邊各有且僅有三個大寫字母。根據上關給出的提示,關鍵資訊可能在Page Source中,經過檢視果然如此。
根據提示,滿足上述規則的可能有一個,也可能有多個。如果僅有一個,那麼找到的這七個字母組成的單詞應該就是通關單詞;如果有多個,那麼所有匹配的小寫字母就應該組成一個單詞。按常理來講,通關單詞應該是可讀、有含義的。下面是編寫的Python指令碼:
執行指令碼得到“linkedlist",進入linkedlist.html 頁面,根據提示進入linkedlist.php頁面,通關!
第4關 數字串
該關從頁面上看不出什麼有意義的資訊,但我們從頁面原始碼中可以提取到下面的有效資訊
點選圖片,得到資訊“and the next nothing is 92512”,由此更改網址中引數nothing的值。按照需求我們設計下面的程式碼:
從nothing值為12345開始,獲取網頁上的資訊,提取出最後的數字,最為nothing值進入下一次迴圈,最多400次。網頁上的資訊將記錄在numbers.log檔案中。執行程式,等待一段時間,從日誌中將得到一串資訊:
“and the next nothing is 92118
Yes. Divide by two and keep going.”
按照提示,將程式碼中nothing的初始值12345改為46059。重新執行程式,將得到最終資訊“peak.html ”。通關!
第5關:Pickle
圖片下有這麼一句話“ pronounce it ”,再看原始碼:
“peak hell sounds familiar ”?pickle模組。按照給定的檔案banner.p,使用pickle解序列,將得到一個包含了不定數個元組的列表的列表。經過分析,每個列表的所有元組的第二項相加均為95,而元組的第一項要麼是‘ ’,要麼是‘#’;那麼,很顯然按一行95個字元的排列輸出將得到有效資訊,程式碼如下:
執行程式,將得到channel字樣。下一關網址將是channel.html ,通關!
相關文章
- python challenge 答案Python
- python challenge 解題 第4關Python
- Motivation & Challenge
- type challenge(easy 部分)
- AMBF 之 surgical robotics challenge
- 穿越矩陣矩陣
- Flare-on5 Challenge6 magic -Writeup
- 範寶興:6階穿越介面/10階同心穿越介面
- 穿越介面圖譜~
- 穿越介面圖譜
- 10:Challenge 3(樹狀陣列直接修改)陣列
- Oracle穿越防火牆設定Oracle防火牆
- [譯] 如何在 Titanic Kaggle Challenge 中獲得0.8134分
- nginx目錄穿越漏洞復現Nginx
- 穿越介面:常規與不常規
- MySQL:MDL LOCK的“穿越行為”MySql
- 範寶興:14階穿越介面
- “華為號”,決定穿越計算光年
- 穿越到 1983 年學習 BASIC
- 5元方程式的穿越介面
- 123456穿越介面的29解
- SIP穿越NAT的rport機制
- Oracle穿越incarnation恢復資料Oracle
- rman 穿越incarnation恢復資料
- TrendForce:2022年第三季度NAND Flash價格將下跌0-5%NaN
- 我要穿越,幹翻 “爛語言” JavaScript!JavaScript
- 如何利用網路延遲穿越時空
- 4階唯一解幻方~穿越介面~
- 載入iptables模組實現PPTP ***穿越薦pptp
- 論文翻譯:2020_Acoustic Echo Cancellation Challenge Datasets And TestingframeworkFramework
- Codeforces 235E Number Challenge (神定理+莫比烏斯反演)
- 任天堂:百年遊戲帝國穿越史遊戲
- 如何配置MTS以穿越防火牆連線oracle防火牆Oracle
- 10可以穿越resetlogs恢復資料庫!資料庫
- 韋達定理與新關係式的穿越介面
- 阿里研究院:穿越數字黑洞(附下載)阿里
- 範寶興:15階穿越介面的又一佳作
- 範寶興:4分法16階穿越介面