Python Challenge解谜手记 Level0-1
很早就看到了http://www.pythonchallenge.com/,一直没往下做,后来发现还是蛮好玩的,所以在这里记录一下,希望能坚持走到最后的level。
Level 0
题目:238(http://www.pythonchallenge.com/pc/def/0.html)
题意:热身题,最简单的一道了吧,本意是熟悉挑战规则,即将答案替换掉当前url里的0.html
解谜:
2 print pow(2,38)
可以用内建函数或者干脆移位操作,移位时要注意是38-1,因为题目是2乘以37个2,所以……不解释
Level 1
题目:http://www.pythonchallenge.com/pc/def/map.html
题意: 观察图中的映射规则,推断出应该是按照这种规则来翻译图下面的那句话,无论如何,先翻译一下吧。
解谜:
2 for c in str:
3 if not c>='a' and c<="z":
4 sys.stdout.write(c),
5 continue
6 if c == 'y':
7 print 'a',
8 elif c == 'z':
9 print 'b',
10 else:
11 sys.stdout.write(chr(ord(c)+2))
很挫, 翻译后得知:
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.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.
大意就是,按照相同的规则对当前url进行翻译,得出下一题的url。不过题目推荐了maketrans(),笔者对python也是个半瓶水,很多api不熟,翻了翻文档,于是决定用最python的方式再来一次:
2 table = string.maketrans(string.ascii_lowercase,"cdefghijklmnopqrstuvwxyzab");
3 print string.translate(str, table)
4 print string.translate("http://www.pythonchallenge.com/pc/def/map.html",table)
得到:jvvr://yyy.ravjqpejcnngpig.eqo/re/fgh/ocr.jvon
那么下一题应该就是:http://www.pythonchallenge.com/pc/def/ocr.html。
Python Challenge提供了参考代码,可以将当前url里的/pc改成/pcc来查看上一题的参考代码,所以Level1的参考代码可以查看:http://www.pythonchallenge.com/pcc/def/ocr.html
看了之后我发现我有一个地方确实不太简洁,忘了python那无敌的切片了,特此修正:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述