Python Challenge 第四题
来源:互联网 发布:mac 快捷方式到桌面 编辑:程序博客网 时间:2024/06/04 19:40
这一题没有显示提示语,只有一幅图片,图片也看不出什么名堂,于是直接查看源码,源码如下:
<html><head> <title>follow the chain</title> <link rel="stylesheet" type="text/css" href="../style.css"></head><body><!-- urllib may help. DON'T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough. --><center><a href="linkedlist.php?nothing=12345"><img src="chainsaw.jpg" border="0"/></a><br><br><font color="gold"></center>Solutions to previous levels: <a href="http://wiki.pythonchallenge.com/"/>Python Challenge wiki</a>.<br><br>IRC: irc.freenode.net #pythonchallenge</body></html>
可以看到,解题需要用到urllib,提示我们不要去一个一个地尝试noting,因为这数量特别多,远远不止四百次(最终证明其实不需要四百次,一百二十多次就行了),既然这么多,那肯定不能手动去试了,但是可以让计算机自动去访问提取nothing值。点击图片,我们便获得了第一个nothing值44827,再修改URL,获得下一个nothing值,发现没个nothing页面最后都会有这句话“and the next nothing is ”后面接着一个数字(当然,因为URL的需要,我们把它理解为一个字符串,刚开始投机取巧认为这数字是五位的,后来出现四位的,又认为是四位或五位的,再后来有三位的。。。于是还是老老实实写关于提取最后不限位数数字字符的代码),从而猜想,那个可以获得答案相关信息的页面内容会与这些均不同,可以通过内容最后是否是数字字符来判断,最后代码如下:
import urllib.requestname='http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='finalNum='44827'#nothing's number stringwhile 1: f=urllib.request.urlopen(name+x) content=f.read().decode('utf-8') print(content) #输出页面内容,方便查看到最后的解题信息 finalNum=[] content=list(content) content.reverse() for i in content: #提出页面内容最后的数字字符 if i.isdigit(): finalNum.append(i) else: break finalNum.reverse() finalNum=''.join(finalNum) if not finalNum: #判断页面最后内容是不是数字字符,如果不是,则跳出循环 break
当循环结束时候的那个页面信息是“Yes. Divide by two and keep going”,上一个页面为“and the next nothing is 16044”,于是修改finalNum的值为‘8022’,重新启动程序,最后获得答案
0 0
- Python Challenge 第四题
- python challenge 第四关
- python challenge 第四关
- python challenge 第四关解法 http://www.pythonchallenge.com
- python challenge第3题
- python challenge第4题
- python challenge
- Python Challenge
- Python Challenge
- python challenge
- Python Challenge
- Python challenge
- python challenge
- Python Challenge
- Lua Challenge -- From Python Challenge
- Python Challenge 谜题0
- Python Challenge 谜题1
- Python Challenge 谜题2
- Hadoop-2.2.0中文文档——MapReduce--写YARN应用
- 百度地图引用静态文件
- POJ 2250 Compromise (UVA 531)
- cocos2d-x CCMenuItem菜单项
- hive-DML语句
- Python Challenge 第四题
- android 自定义view实现可左右滑动的Tabbar
- java 操作JSON
- git和github使用总结
- 百度地图SDK使用需要引入的框架
- 2014.11.18 java执行效率优化方式
- Multiple dex files define ... with Gradle
- java基础导航
- Unity3D学习之脚本的基础