您好,登錄后才能下訂單哦!
本篇內容主要講解“Python趣味挑戰題目有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python趣味挑戰題目有哪些”吧!
這道題只能算是一道熱身題,下面有一行提示,”Hint: try to change the URL address.”
它的答案其實就是將2的38次方的結果作為下一道題的入口鏈接,因為 2**38 等于 274877906944,所以第二道題的鏈接地址就是將這道題的鏈接
http://www.pythonchallenge.com/pc/def/0.html 替換成: http://www.pythonchallenge.com/pc/def/274877906944.html
打開鏈接后會重定向到新的頁面,出現的圖是:
圖中提供的信息應該是類似于凱撒加密,K->M,O->Q,E->G,也就是意味著每個字母都往右移了2位,可以猜到 a->c,c->e,… x->z, y->a,z->b,另外還有一串加密的提示信息,為了得到正確,答案,我們必須將這串字符串解密出來
先用代碼實現可以得到解密算法:
def decrypt(c):
return chr(((ord(c) + 2) - ord('a')) % 26 + ord('a'))
將加密字符串進行解密得到:
>>> s = """
everybody thinks twice before solving this.
g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.
"""
>>> result = ""
>>> for c in raw:
... if c >= 'a' and c <= 'z':
... result += decrypt(c)
... else:
... result += c
最后解密出result為(代碼可右劃):
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.
它告訴我們不要等手動的去轉換,而是用一種算法來實現,因為遇到很長的字符串時手動轉換的效率不高,另外它還給了我們另一種方法就是使用 string.maketrans() 進行轉換,所以就有了第二種解法:
>>> t = str.maketrans("abcdefghijklmnopqrstuvwxyz", "cdefghijklmnopqrstuvwxyzab")
>>> s.translate(t)
"i hope you didnt translate it by hand. thats what computers are for. doing itin by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url."
我們將該算法應用到該url
http://www.pythonchallenge.com/pc/def/map.html 將被轉換成 http://www.pythonchallenge.com/pc/def/ocr.html
到此,相信大家對“Python趣味挑戰題目有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。