博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python challenge趣味挑战赛
阅读量:6280 次
发布时间:2019-06-22

本文共 4860 字,大约阅读时间需要 16 分钟。

hot3.png

第0关

>>>print 2 ** 38274877906944L

替换网址为http://www.pythonchallenge.com/pc/def/274877906944.html

第1关

是个密码,字母往后移动两位,yz 变为 ab

#!/usr/bin/env python# coding: utf-8# author: toddlerya# date: 2015-1-27alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',         'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']goal = """g fmnc wms bgblr rpylqjyrc gr zw fylb.rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylbgq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle.sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."""alpha_dict = {'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5,              'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14,              'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19,              'w': 22, 'v': 21, 'y': 24, 'x': 23, 'z': 25}result_dict = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h',               8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm', 13: 'n', 14: 'o',               15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u',               21: 'v', 22: 'w', 23: 'x', 24: 'y', 25: 'z'}#alpha_dict = dict([ (alpha[i], i) for i in range(0,26)] )#result_dict = dict([ (i, alpha[i]) for i in range(0,26)] )result_order = []result = []for a in goal:    if a in alpha:        i = alpha_dict[a]        if i < 24:            j = i + 2            result_order.append(j)        elif 24 == i:            j = 0            result_order.append(j)        elif 25 == i:            j = 1            result_order.append(j)        #print result_orderfor r in result_order:    x = result_dict[r]    result.append(x)#print resultnum = 0for a in goal:    if a in alpha_dict:        print result[num],        num += 1    else:        print a,

过关密码:

i   h o p e   y o u   d i d n t   t r a n s l a t e   i t   b y   h a n d . 

t h a t s   w h a t   c o m p u t e r s   a r e   f o r .   d o i n g   i t   i n   b y   h a n d 

i s   i n e f f i c i e n t   a n d   t h a t ' s   w h y   t h i s   t e x t   i s   s o   l o n g . 

u s i n g   s t r i n g . m a k e t r a n s ( )   i s   r e c o m m e n d e d .   n o w   a p p l y   o n   t h e   u r l .

按照提示改了下,好简洁。。。自己造轮子写的真丑。。。

#!/usr/bin/env python# coding: utf-8# author: toddlerya# date: 2015-1-27from string import maketransin_string = "abcdefghijklmnopqrstuvwxyz"out_string = "cdefghijklmnopqrstuvwxyzab"goal = """g fmnc wms bgblr rpylqjyrc gr zw fylb.rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylbgq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle.sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."""trans_string = maketrans(in_string, out_string)print goal.translate(trans_string)

这次输出的好看多了:

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.

第2关

从提示可知道,查看源代码,找到一段注释

<!--

find rare characters in the mess below:

-->

<!--

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

@##&{#&{&)*%(]{

{([*}@[@&]+

……

-->

#!/usr/bin/env python# coding: utf-8# author: toddlerya# date: 2015-1-27# 把那一段注释里的内容 放到rare_char里面rare_char = """%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%省略n行"""tmp = []for i in rare_char:    if i in tmp:        pass    else:        tmp.append(i)        print i, rare_char.count(i)

运行结果如下:

toddler@HP:~/Desktop$ python 3.py 1220% 6104$ 6046@ 6157_ 6112^ 6030# 6115) 6186& 6043! 6079+ 6066] 6152* 6034} 6105[ 6108( 6154{ 6046e 1q 1u 1a 1l 1i 1t 1y 1

可以看到最少字符是equality。这就是过关密码啦。改下url,下一关

第3关

目标要求的格式为xXXXxXXXx  正则搞定

那段待处理的文字放在src里

#!/usr/bin/env python# coding: utf-8# author: toddlerya# date: 2015-1-28import resrc = """kAewtloYgcFQaJNhHVGxXDiQmz……"""goal = re.findall("[a-z]{1}[A-Z]{3}[a-z]{1}[A-Z]{3}[a-z]{1}", src)i = 0for g in goal:    print goal[i][4],    i += 1

过关密码:

>>> l i n k e d l i s t

替换equality为linkedlist

显示linkedlist.php

替换网址为linkedlist.php

进入第四关

第4关

点击图片跳转到新的页面,提示 :and the next nothing is 44827

看下网址:

改下好了:

……

改了两次发现这个应该用Python获取网络连接,然后改url访问下一次直到成功。。。

蠢哭了。。。

上Python

#!/usr/bin/env python# coding: utf-8# author: toddlerya# date: 2015-1-28import urllib2, renothing = "12345"url_nothing = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="url = url_nothing + nothingcount = 1while nothing:    try:        response = urllib2.urlopen(url, timeout=60)        html = response.read()                tmp = re.findall("[0-9]+", html)        nothing = ''.join(tmp)        url = url_nothing + nothing                print count, "\n", url        count += 1    except:        print html

这个网络也是醉了。。。等了好久。。。

最后结果

85 http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=1604486 http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=

访问:http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=16044

提示信息:Yes. Divide by two and keep going.

改下代码nothing="8022",继续跑!!!丧心病狂啊

拿到密码:peak.html

第5关:

转载于:https://my.oschina.net/u/2003106/blog/372436

你可能感兴趣的文章
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>