www.pythonchanlleges.com
0. 2**38
1. 字符串映射
s = """
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 to(c):
return chr((ord(c)-ord('a') + 2) % 26+ord('a'))
def tos(s):
ss = ""
for i in s:
if i >= 'a' and i <= 'z':
ss += to(i)
else:
ss += i
return ss
print(tos("map"))
2. 字符串去重
s="""......"""
m = {}
for i in s:
if not i in m:
m[i] = 0
m[i] += 1
for i in s:
if m[i] == 1:
print(i,end="")
3. 正则表达式:三个大写字母包围的小写字母
- 要正好三个
- 要把满足条件的小写字母连起来
import requests
import re
resp = requests.get("http://www.pythonchallenge.com/pc/def/equality.html")
s = resp.text
s = s[s.index("<!--"):]
s = s[4:-4]
x = re.findall("[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z]", s)
print("".join([i[4] for i in x]))
4. 网络请求+正则表达式,需要向服务器请求大约400次,中间会有一些中断,按照服务器要求来
当中断后,记录下中断前的那个数字,从那个数字接着来
因为这个游戏过于耗时(请求400次大约需要5分钟,并且中间偶尔会请求失败),所以参考别人的(答案为peak.html)
import re
import requests
s = 8022
cnt = 400
while cnt > 0:
cnt -= 1
resp = requests.get("http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing={}".format(s))
ss = resp.text
print(cnt, ss)
s = re.search("[0-9]*$", ss)
if s == None: # 注意如果没有匹配项,返回None
break
s = s.group()
if len(s) == 0: # 因为上面是*,所以一定能够匹配上一个空串,所以这里必须判断len(s)
break
print(s)
5. pickle用于python持久化,然后发现这是一个由空格和井号组成的字符画
import pickle
import requests
s = requests.get("http://www.pythonchallenge.com/pc/def/banner.p").text
x = pickle.loads(bytes(s, encoding="utf8"))
print("\n".join(["".join([i[0] * i[1] for i in row]) for row in x]))
6. zipfile包用于压缩解压缩
这个问题太含蓄了,改成y.html,有回复,但没用
title后面有注释zip,于是改为zip.html,有回复
改为channel.zip下载一个zip文件,查看readme,跟前面的网络请求那道题差不多
我在想,这道题怎么考查zipfile呢?原来这道题需要获取文件信息,将文件注释拼接起来才能得到一个字符画,解压之后就无法看见压缩的文件信息了。
import requests
import zipfile
import re
resp = requests.get("http://www.pythonchallenge.com/pc/def/channel.zip")
open("haha.zip", "wb").write(resp.content)
f = zipfile.ZipFile("haha.zip")
nothing = 90052
comments = ""
while 1:
filename = str(nothing) + ".txt"
x = f.read(filename)
s = str(x, "utf8")
comments += str(f.getinfo(filename).comment, "utf8")
print(s, comments)
s = re.search("\d*$", s)
if s == None:
break
nothing = s.group()
if len(nothing) == 0:
break
print(nothing)
得到答案hockey(火箭),字符画使用oxygen拼起来的。url实际上就是oxygen
7. 望而却步,毫无意义
www.pythonchanlleges.com的更多相关文章
随机推荐
- ubuntu 常用配置
root 登录 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf加:greeter-show-manual-login=true设 ...
- fisher精确检验(fisher’s exat test)和超几何分布
- 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
原文来自:http://blog.csdn.net/xiazhaoqiang/article/details/6585537 LDA算法入门 一. LDA算法概述: 线性判别式分析(Lin ...
- OpenCV学习(25) 直方图(2)
在OpenCV中,也可以对三通道的图像,比如BGR,HSV等计算直方图.方法和计算单通道图像直方图相似,下面的代码描述了如何计算一个BGR三通道图像的直方图,需要注意的是,因为是三通道,每个通道取值都 ...
- window安装Scrapy———解决报错问题
系统是WIN10 64位Python是3.5.2今天安装pip install Scrapy 来安装发现报错Microsoft Visual C++ 14.0 is required 检查发现电脑中 ...
- 把表单转成json,并且name为key,value为值
http://jsfiddle.net/sxGtM/3/http://stackoverflow.com/questions/1184624/convert-form-data-to-js-objec ...
- Android -- uses-sdk:minSdkVersion 10 cannot be smaller than version L declared in library com.android.support:appcompat-v7:21.0.0-rc1
这是一个报错,是我在Android Studio上添加完Support-v4和v7包之后爆出的错误,百度了好久也没有百度到.当时我的项目有minSdkVersion 19. 设置版本最小为L的时候也会 ...
- C语言学习笔记:14_内部函数和外部函数
/* * 14_内部函数和外部函数.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- IDEA报错Target level '1.6' is incompatible with source level '1.7'
解决IDEA 编译级别 Error:java: Target level '1.6' is incompatible with source level '1.7'. A target level ' ...
- Parse 使用- iOS 后台数据[转]
原文地址:http://blog.csdn.net/vipwangl/article/details/8846415 最近在学习Parse,但是Parse的中文教程比较少,看到这篇英文教程,把它翻译一 ...