文档章节

python challenge趣味挑战赛

toddler
 toddler
发布于 2015/01/27 19:47
字数 1123
阅读 2227
收藏 6

第0关

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

>>>print 2 ** 38
274877906944L

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


第1关

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

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

#!/usr/bin/env python
# coding: utf-8
# author: toddlerya
# date: 2015-1-27

alpha = ['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 fylb
gq 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_order

for r in result_order:
    x = result_dict[r]
    result.append(x)

#print result

num = 0

for 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-27

from string import maketrans

in_string = "abcdefghijklmnopqrstuvwxyz"
out_string = "cdefghijklmnopqrstuvwxyzab"

goal = """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."""

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关

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

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

<!--

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
{ 6046
e 1
q 1
u 1
a 1
l 1
i 1
t 1
y 1

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


第3关

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

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

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

#!/usr/bin/env python
# coding: utf-8
# author: toddlerya
# date: 2015-1-28
import re

src = """
kAewtloYgcFQaJNhHVGxXDiQmz
……
"""

goal = re.findall("[a-z]{1}[A-Z]{3}[a-z]{1}[A-Z]{3}[a-z]{1}", src)
i = 0
for 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关

http://www.pythonchallenge.com/pc/def/linkedlist.php

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

看下网址:http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345

改下好了:http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=44827

……

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

蠢哭了。。。

上Python

#!/usr/bin/env python
# coding: utf-8
# author: toddlerya
# date: 2015-1-28

import urllib2, re

nothing = "12345"
url_nothing = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="
url = url_nothing + nothing
count = 1
while 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=16044
86 
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",继续跑!!!丧心病狂啊

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

拿到密码:peak.html


第5关:

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



© 著作权归作者所有

下一篇: Gtk table 坐标
toddler
粉丝 13
博文 33
码字总数 21659
作品 1
济南
QA/测试工程师
私信 提问
程序员不容错过的5大有趣编程网站,你知道几个?

学编程最重要的是实践,就是写代码、看别人写的代码、再写代码。 要掌握编程这一门手艺,要经过大量的训练。 如果编程练习可以变得有趣,那你一定可以乐此不疲,长期坚持。 下面w3cschol分享...

W3Cschool
2018/04/12
0
0
从CSDN的趣味题学PYTHON

转自:http://www.cnblogs.com/chagel/archive/2009/02/01/1381820.html 本文给出两道趣味题的Python解法 题目难度不大,都是针对字符串的操作,逻辑比较简单,灵活在对不同语言、语法的掌握...

flynewton
2010/11/16
601
0
大家都在学的编程语言 Python,可以用来干什么?

编者按:Python因为简单全面易用而成为近年来大热的编程语言。但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做。Realpython.com上面的一篇文章于是把Python可...

Python燕大侠
2018/07/18
4.3K
19
NEO 区块链挑战赛(4) — 成都站

NEO区块链挑战赛继深圳,伦敦,东京三站后,第一次来到成都。这既是一场友好的技术社区聚会,又是一次有意思的专属开发者的黑马松活动。本次挑战赛题目开放,不论你是开发新手还是经验丰富的...

NEO爱好者
2018/09/11
8
0
NEO 区块链挑战赛(4) — 成都站

NEO区块链挑战赛继深圳,伦敦,东京三站后,第一次来到成都。这既是一场友好的技术社区聚会,又是一次有意思的专属开发者的黑马松活动。本次挑战赛题目开放,不论你是开发新手还是经验丰富的...

NEOFLY
2018/09/11
78
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 中更改 swappiness

交换空间是 RAM 内存已满时使用的硬盘的一部分。交换空间可以是专用交换分区或交换文件。当 Linux 系统耗尽物理内存时,非活动页面将从 RAM 移动到交换空间。Swappiness 是一个 Linux 内核属...

Linux就该这么学
6分钟前
0
0
OSChina 周二乱弹 —— 别戳屏幕!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 这次装个文艺青年吧 :#今日歌曲推荐# 分享莫西子诗的单曲《把城市拉回乡下喂狗》: 《把城市拉回乡下喂狗》- 莫西子诗 手机党少年们想听歌,...

小小编辑
14分钟前
43
4
golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
10
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部