【python challenge】level0_level1

最近正在学python,有同学推荐可以玩一下python challenge。玩了几关竟然上瘾了,挺有意思,不过总的来说,有一些解决思路比较接近的好做,但是更多的是对题意的分析还不够,没有什么思路的。


level0:

url = http://www.pythonchallenge.com/pc/def/0.html

2的38次方计算:

def pow(x,m):
    res =x
    #其实这里的判断条件要m大于零并且为整型,
    if m > 0:
      for i in range(m-1):
        res = res*x
    #其他判断,测试需求先不做
    else:
        pass
    print res


pow(2,38)

输出274877906944

所以下一关的url:http://www.pythonchallenge.com/pc/def/274877906944.html

level1:

http://www.pythonchallenge.com/pc/def/map.html

看图片,显然是一种编码方式;百度一下,发现叫凯撒密码;每个字母向后移动了两位;

在这里我是这样处理的,但是在后面有几关也涉及到了转化,找到了更简洁的方法

string.maketrans() 和string.translate()

这里还是使用最原始的方法

def encrypt(f):
  #  f = "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 = ''
    words = f.split(' ')
    print words

    for word in words:
        for char in word:
            if char.isalpha() and char not in 'yz':
                char = chr(ord(char)+2)
            elif char == 'y':
                char = 'a'
            else:
                char = 'b'
            result += char
        result += ' '

    print  result

f='map'
encrypt(f)

先解码原来的一串

f = "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"
变成:
i hope you didnt translate it by handb thats what computers are forb doing it in by hand is inefficient and thatbs why this text is so longb using stringbmaketransbb is recommendedb now apply on the url 
转化map为ocr
下一关的url为
http://www.pythonchallenge.com/pc/def/ocr.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值