PythonChallenge闯关详解

前言
PythonChallenge是国外的一位工程师设计的一套编程闯关游戏,网址:PythonChallenge,每一关都可以用一段Python程序解决问题得到下一关的入口,本博文作为一个学习笔记,通过边学边记的方式分享我的闯关经验。

0 图片上是2 38的字样,下方提示为改变当前URL地址,很明显,用Python脚本计算下2的38次方,替换下URL中的0就可以了

2**38

得到274877906944,那么下一关地址:
http://www.pythonchallenge.com/pc/def/274877906944.html

1 仍然是一幅图,标记K->M O->Q E->G,下方有一串字母,看不出什么意思,很明显,这是让你解密,按照图片中的提示,将字母向后移动两位即可,注意y要对应a,z对应b,这样逻辑才能完整。刚开始用的是最原始的方法解题,解出来后作者推荐用maketrans的方法,试了下更好用。

import sys
from string import maketrans
str = "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."
intab = "abcdefghijklmnopqrstuvwxyz"
outab = "cdefghijklmnopqrstuvwxyzab"
transtab = maketrans(intab,outab)
print str.translate(transtab)
print "map".translate(transtab)

将网址中的“map”应用这种转换得到“ocr”,这就是下一关的入口了。

2 提示:识别字符,可能在书里,可能在页面源码里,果断F12,查看网页源码,在网页源码的注释中,提示找到出现次数最少的字符,有一大串字符,数数是肯定不行的,考虑用程序解决。

str = "balabalabala..."
cnt = {
   }    # 用于保存字符出现的总次数
list 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值