Python Challenge 第三关
进入第三关,还是一张图加一句话:One small letter, surrounded by EXACTLY three big bodyguards on each of its sides. 图画的是一支小蜡烛两旁各是三支大蜡烛。初次之外没啥信息了,还是和之前一样,右键,查看源代码。
果然,代码底下又有一个很长的注释,首先用第二关写的代码把页面提取出来:
def getHtmlPage(url):
return urllib2.urlopen(urllib2.Request(url)).read()
然后用这则表达式把这段注释提取出来:
url = 'http://www.pythonchallenge.com/pc/def/equality.html'
page = getHtmlPage(url)
rstList = re.findall('<!--\s+(.*)\s+-->', page, re.S)
ss = rstList[0]
接着就是处理这一段字符串了。三个大写字母加一个小写字母加三个大写字母,很明显用正则表达式:
def getSmallLetters(srcStr):
rstList = re.findall('[A-Z]{3}([a-z])[A-Z]{3}', srcStr)
return ''.join(rstList)
但是得到的结果却懵了:
jfeiauzroivgzbmpszazlutnwsdofbiwqdjbzshfrblqgsbydajygcbjwggtdfjeobcmdlzxajvitecgpkcfwqbvkoietpiijanvqjjgtcpadjkgcluaidgumcdskunujfcj
fmbzkzsasdxsqqqlaeisjefjfdaoljaywxjthqjknednxnsahxqedoeqsdcmltcsnwakjxtytaalhgabekfmyimwrkffydghiunlriwgkuzqljjbsxguytfsatejmdwkf
bzifdknpcqimvehxujszbuyutsompijjojspbwlroefiwmrsjstdjhfwxhnthsoosmoqtufoxvpvpjkgiaqgfrhufxxdnjiwtfqusbkeakunjgknpibklgjounivhgxsn
ekxgrrbslpuaouvhzbilbirmqqxtktgcnkdljoasnexwtgvwjegurnksokjtrovpmykzgeolwysfidemflmkwmj
难不成又是加密的字符串?可是根据提示和这个结果,没有任何解密的头绪。这时候再去看源代码里面的注释,又想起提示中有个大写单词 EXACTLY,发现源代码中有很多大于三个大写字母中间夹着一个小写字母,打开一个正则表达式在线测试网站,发现之前写的把这些也都匹配进来了,应该只匹配前后仅有三个大写字母的小写字母,于是修改了下正则表达式:
def getSmallLetters(srcStr):
rstList = re.findall('[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', srcStr)
return ''.join(rstList)
这次结果对了,得到了:linkedlist
于是把 url 中的 equlity 换成 linkedlist,出来个页面,只有一句话:linkedlist.php。开始以为又做错了,试来试去,将 url 中的 linkedlist.html 换成 linkedlist.php,居然成功进入了第四关:http://www.pythonchallenge.com/pc/def/linkedlist.php
Python Challenge 第三关的更多相关文章
- The Python Challenge 谜题全解(持续更新)
Python Challenge(0-2) The Python Challengehttp://www.pythonchallenge.com/ 是个很有意思的网站,可以磨练使用python的技巧, ...
- python challenge第1关--NoteBook上的“乱码”
在 python challenge第0关中已经得到第1关的地址了: http://www.pythonchallenge.com/pc/def/map.html 一.观察地址栏和标签: What a ...
- Python Challenge 过关心得(0)
最近开始用Openerp进行开发,在python语言本身上并没有什么太大的进展,于是决定利用空闲时间做一点python练习. 最终找到了这款叫做Python Challenge(http://www. ...
- Python Challenge 第四题
这一题没有显示提示语,仅仅有一幅图片,图片也看不出什么名堂,于是直接查看源代码,源代码例如以下: <html> <head> <title>follow the c ...
- The Python Challenge 0-4
The Python Challenge 0-4 项目地址:http://www.pythonchallenge.com/ Level-0 提示Hint: try to change the URL ...
- python challenge答案参考
Solutions to python challenge. http://garethrees.org/2007/05/07/python-challenge/ https://github.com ...
- Python Challenge 第一关
偶然在网上看到这个,PYTHON CHALLENGE,利用Python语言闯关,觉得挺有意思,就记录一下. 第0关应该算个入口吧,试了好几次才试出来,没什么代码就不写了.计算一个结果出来就行. 第一关 ...
- The Python Challenge 闯关笔记
The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...
- Python Challenge 第十三关
第13关.一张电话的图片,一句话:phone that evil.看到电话,加上之前关卡有些图片有链接,我就在电话按键上都点点试试,果然 5 是个链接,就点了进去.出来一个XML文件,第一句写着:Th ...
随机推荐
- 【贪心】bzoj1577: [Usaco2009 Feb]庙会捷运Fair Shuttle
一类经典的线段贪心 Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i ...
- 11Vim文本编辑器
Vim文本编辑器 在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数. Vim提供了三种模式:命令模式.输入模式.末行模式 1.命令模式 每次运行Vim编辑器时,默认进入命令模式 ...
- Java-JFrame开发汇总整理
Java-JFrame开发汇总整理 在CS框架下,可以通过java代码开发JFrame弹窗体的功能,即类似于QQ登录等安装在计算机中的程序,通过java开发CS中C即客户端的一般用到的知识点如下: 一 ...
- python入门:输出1-10的所有数
#!/usr/bin/env python # -*- coding:utf-8 -*- #输出1-10的所有数 """ 变量kaishi的赋值为数字1,while 真, ...
- ProC第一弹
编译pro*c 的makefile例子 原来只需在makefile中追加include $(ORACLE_HOME)/precomp/lib/env_precomp.mk,其他一切按照makefile ...
- LeetCode(306) Additive Number
题目 Additive number is a string whose digits can form additive sequence. A valid additive sequence sh ...
- 水题:51Nod1095-Anigram单词
1095 Anigram单词 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 Description 一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那 ...
- Cacti安装脚本Server端+客户端
#!/bin/bash #auto make install LAMP+Cacti #by authors zhang #RRDtool define path variable R_FILES=rr ...
- 【转载】美国人教你这样用Google
大前提:英文Google→www.google.com 第一篇 在搜索框上输入:“indexof/”inurl:lib 再按搜索你将进入许多图书馆,并且一定能下载自己喜欢的书籍. 在搜索框上输入:“i ...
- P3391 【模板】文艺平衡树(Splay)新板子
P3391 [模板]文艺平衡树(Splay) 题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转 ...