The Python Challenge 0-4
The Python Challenge 0-4
项目地址:http://www.pythonchallenge.com/
Level-0
提示Hint: try to change the URL address. ,修改0.html为1.html,提示2**38 is much much larger. ,打开python控制台,计算后替换1.html为274877906944.html,进入下一关。
>>> 2**38
274877906944
Level-1
提示everybody thinks twice before solving this.,观察图片发现是一道找规律的数学题,字母间位置相差2,由此猜测位移计算,将字符串中所有字母右移两位。
str = "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. "
def right_2(str):
if str is 'y':
return 'a'
if str is 'z':
return 'b'
if str.isalpha() and str not in 'yz':
return chr(ord(str)+2)
return str
s = map(right_2, str)
print ''.join(s)
ord() 函数以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值。
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
isalpha() 方法检测字符串是否只由字母组成。
map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
程序运行结果为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. ,根据提示添加str = "map",运行得到结果ocr。
解法二:
根据提示的函数,maketrans() 方法用于创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
生成字母表
>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
操作字符串自定义规则
import string
from string import maketrans
str = "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. "
def right_2(str):
s = string.ascii_lowercase
s1 = s
s2 = s[2:26] + s[0:2]
trantab = maketrans(s1,s2)
if str.isalpha():
return str.translate(trantab)
return str
str = map(right_2,str)
print ''.join(str)
Level-2
提示recognize the characters. maybe they are in the book,but MAYBE they are in the page source.,直接查看源代码提示find rare characters in the mess below,复制后保存到文件,程序如下,运行结果为equality。
import string
l = []
with open('/Users/markzhang/Desktop/level3.txt','r') as f:
str = f.read()
for s in str:
if s in string.ascii_lowercase:
l.append(s)
if s in string.ascii_uppercase:
l.append(s)
print ''.join(l)
Level-3
提示One small letter, surrounded by EXACTLY three big bodyguards on each of its sides. ,要求查找类似xXXXxXXXx的小写字母,直接查看源代码,复制后保存到文件,程序如下,运行结果为linkedlist。
import re
with open('/Users/markzhang/Desktop/level4.txt','r') as f:
str = f.read()
pattern = re.compile(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]')
result = re.findall(pattern,str)
print ''.join(result)
Level-4
打开是一张图片,点击图片提示and the next nothing is 44827,替换为nothing=44827后提示and the next nothing is 45439,继续替换时提示Your hands are getting tired and the next nothing is 94485,猜测是请求发包次数的问题,回到显示图片页面,查看源码提示urllib may help. DON'T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough.,尝试获取noting的值,循环发包获取答案。
import requests
import re
p = '12345'
def next_index(p):
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=%s' %p
res = requests.get(url).content
pattern = re.compile(r'\d+')
index = re.search(pattern,res).group()
return index
for i in range(1,401):
print 'the %d time' %i
p = next_index(p)
print p
运行到86次报错,访问第85次的nothing值16044,提示Yes. Divide by two and keep going.,
根据提示除以二后使用8022继续访问,提示and the next nothing is 25357,赋值p后继续运行上面的程序,运行到55次出错,访问此时结果82683,提示You've been misleaded to here. Go to previous one and check.,
根据提示继续访问上一次运行结果82682,提示There maybe misleading numbers in the text. One example is 82683. Look only for the next nothing and the next nothing is 63579,继续访问63579,提示and the next nothing is 37278,赋值p后继续运行上面的程序,运行到109次报错,使用108次的值66831继续访问,得到peak.html。
The Python Challenge 0-4的更多相关文章
- Python Challenge 过关心得(0)
最近开始用Openerp进行开发,在python语言本身上并没有什么太大的进展,于是决定利用空闲时间做一点python练习. 最终找到了这款叫做Python Challenge(http://www. ...
- python challenge第1关--NoteBook上的“乱码”
在 python challenge第0关中已经得到第1关的地址了: http://www.pythonchallenge.com/pc/def/map.html 一.观察地址栏和标签: What a ...
- Python Challenge 第四题
这一题没有显示提示语,仅仅有一幅图片,图片也看不出什么名堂,于是直接查看源代码,源代码例如以下: <html> <head> <title>follow the c ...
- The Python Challenge 谜题全解(持续更新)
Python Challenge(0-2) The Python Challengehttp://www.pythonchallenge.com/ 是个很有意思的网站,可以磨练使用python的技巧, ...
- Python Challenge 第一关
偶然在网上看到这个,PYTHON CHALLENGE,利用Python语言闯关,觉得挺有意思,就记录一下. 第0关应该算个入口吧,试了好几次才试出来,没什么代码就不写了.计算一个结果出来就行. 第一关 ...
- The Python Challenge 闯关笔记
The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...
- python 2.4 与 python 3.0 的比较
转过来,留着日后查看 [转自:]http://hi.baidu.com/autoitcn/blog/item/5f41973294b5fc4fac4b5f77.html python 2.4 与 py ...
- Python 3.0(一) 简介
Python 3.0(一) 简介 [目录] 1.简介 2.python特点 3.安装 简介: Python是可以称得上即简单又功能强大的少有的语言中的一种.你将会惊喜地发现,专注于问题的解决方案而不是 ...
- HOWTO Use Python in the web — Python v3.0.1 documentation
HOWTO Use Python in the web - Python v3.0.1 documentation mod_python¶ People coming from PHP often f ...
随机推荐
- rabbitmq (二) 持久化
默认情况下rabbitmq 是根据消费者多少依次投递,投递后就删除消息. 消息不会重复投递给不同的消费者. 消费者如果遇到长时间的任务,会执行完一个消息之后再执行下一个消息, 消费者持久化: 如果一个 ...
- Python + Robot Framework 环境搭建
一.Python 安装 说明:由于RIDE是基于python2.x开发,后期未做python3.x兼容,所以这里安装python2.7. 链接: https://pan.baidu.com/s/1yf ...
- 笔记:python (2015)
[开发环境]: Python 3.3 http://rj.baidu.com/soft/detail/25283.html 大小:20.2M 版本:3.3.5150 位数:64 更新日期:2014 ...
- 一份快速完整的Tensorflow模型保存和恢复教程(译)(转载)
该文章转自https://blog.csdn.net/sinat_34474705/article/details/78995196 我在进行图像识别使用ckpt文件预测的时候,这个文章给我提供了极大 ...
- linux文件属性的10个字符各代表什么意思
10个字符表示文件类别和权限,具体如下: 例: 第一个字符表示文件类别,代表的含义如下:-:普通文件d:目录文件b:块设备文件c:字符设备文件l:符号链接文件 后面9个字符代表3组访问权限:第1组的3 ...
- java的反射机制之getDeclaredMethods和getMethods的区别
getMethods() 返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 me ...
- js 模拟css3 动画
<html> <head> <title> javaScript缓动入门 </title> </head> <body> < ...
- BP神经网络与Python实现
人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善. 联想大家熟悉的回归问题, 神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数, 并使用该函数进行预测, 网 ...
- 如何学习DeepLearning
多年来,科学家们为了搞清楚神经网络的运行机制,进行了无数次实验.但关于神经网络的内在运行方式,目前还没有系统性的理论,没有具体的路线可以指引你获得更好的性能.简单地下载开源工具包直接使用并不能跑出很棒 ...
- django 数据库配置 ,APP 迁移.模型基础
# 1.数据库的连接配置django 连接mysql的配置流程:- 安装 pymysql pip install pymysql- 创建数据库用户有创建数据库权限的用户- 创建数据库crm .进入数据 ...