Python挑战题

栏目: IT技术 · 发布时间: 6年前

内容简介:网址:http://www.pythonchallenge.com/这个网站提供了33道智力题,需要用Python里面的一些知识去解决,当然你也可以使用其他语言,每道题都有解题线索,你要根据提示获取答案后才能进入下一题。截至目前,已经有3369095位用户试图发起挑战。

网址:http://www.pythonchallenge.com/

这个网站提供了33道智力题,需要用 Python 里面的一些知识去解决,当然你也可以使用其他语言,每道题都有解题线索,你要根据提示获取答案后才能进入下一题。截至目前,已经有3369095位用户试图发起挑战。

Python挑战题

第一题

第一题是热身题,你要计算2的38次幂,计算结果就是第二题的入口链接

Python挑战题

>>> 2**38
274877906944

第二题

第二题的入口链接是 http://www.pythonchallenge.com/pc/def/274877906944.html ,如果你懂凯撒密码的话,你就知道怎么解这道题了。凯撒密码就是将字符移动固定位数得到一个新的字符。

Python挑战题

通过图中提示,我们发现字符向右移动了两位,K变成了M,O 变成了Q

>>> chr(ord('K')+2)
'M'
>>> chr(ord('O')+2)
'Q'
>>> chr(ord('E')+2)
'G'

因此,可以我们只需要把图片下方这串加密的文本进行解码就可以得到正确的文本。

text = "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."
s = ""
for i in text:
    import string

    if i in string.ascii_letters:
        if ord(i) < 121:
            s += chr((ord(i) + 2))
        else:
            s += chr((ord(i) - 26 + 2))
    else:
        s += i
print(s)

结果

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.

这里有两个需要注意的地方,第一:非字符不需要处理,第二:当字符对应的asscii值大于121(对应的字符是y),需要减 26,相当于 y 对应的 a 。 解码出来后提示告诉我们其实可以直接使用函数 string.maketrans() ,因为这种方式更高效,不得不说,这道理很有趣。 不过这种方式在python3已经不支持了。

所以第三题的链接只要将 map 转换成 ocr 既可。

第三题

第三题链接: http://www.pythonchallenge.com/pc/def/ocr.html, 这道题根据提示说是答案可能存在于页面的HTML源代码中

Python挑战题

提示告诉我们要把注释里面最少出现的字符找出来

Python挑战题

我们可以直接使用 Counter 这个类来处理

text = """%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
{!!"""

from collections import Counter
counter = Counter(text)
for c in counter.items():
    print(c)

输出结果

('%', 6104)
('$', 6046)
('@', 6157)
('_', 6112)
('^', 6030)
('#', 6115)
(')', 6186)
('&', 6043)
('!', 6079)
('+', 6066)
(']', 6152)
('*', 6034)
('}', 6105)
('[', 6108)
('(', 6154)
('{', 6046)
('\n', 1219)
('e', 1)
('q', 1)
('u', 1)
('a', 1)
('l', 1)
('i', 1)
('t', 1)
('y', 1)

发现出现最少的是 equality 这几个字符,刚好可以组成一个单词,这个单词大概就是第四题的链接。http://www.pythonchallenge.com/pc/def/equality.html

梦想是让8岁儿童也能开发属于自己的APP,我很好奇这背后究竟会是一家什么样的公司,今天周末,推荐这篇文给你

有问题可以扫描二维码和我交流

关注公众号「Python之禅」,回复「1024」免费获取Python资源

Python挑战题

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

安全之美

安全之美

Andy Oram、John Viega / 徐 波、沈晓斌 / 机械工业出版社华章公司 / 2011-4-28 / 65.00元

“这本深思熟虑的论文集(《安全之美》)帮助读者摆脱安全领域闪烁着欺骗光芒的心理恐惧,转而欣赏安全的微妙美感。本书描述了安全的阴和阳,以及引人注目的破坏性和闪亮光辉的建设者之间剑拔弩张的气氛。” ——Gary McGraw,Cigital公司CTO,《Software Security》及其他9本书的作者 大多数人不会太关注安全问题,直到他们的个人或商业系统受到攻击。这种发人深省的现象证......一起来看看 《安全之美》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具