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的更多相关文章
随机推荐
- mysqld_safe脚本执行的基本流程
mysqld_safe脚本执行的基本流程:1.查找basedir和ledir.2.查找datadir和my.cnf.3.对my.cnf做一些检查,具体检查哪些选项请看附件中的注释.4.解析my.cnf ...
- C语言编程规范
C语言编程规范 6 函数与过程 6.1 函数的功能与规模设计 函数应当短而精美,而且只做一件事.不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解.测试.维护等变得困难. 6.2 ...
- C# 编程指南
此部分详细介绍了 C# 语言主要功能,以及通过 .NET Framework 可以在 C# 中使用的功能. 阅读此部分的大部分内容的前提是,你已对 C# 和一般编程概念有一定的了解. 如果完全没有接触 ...
- 《Small Memory Software:Patterns For System With Limited Memory》读书笔记
原文地址:http://blog.csdn.net/jinzhuojun/article/details/13297447 虽然摩尔定律让我们的计算机硬件得以以指数速度升级,但反摩尔定律又不断消减这些 ...
- 三个和数组有关的程序题目(C++)
题目一:有n个整数,使前面各数顺序向后移动m个位置 问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数 程序代码: #include<iostream> us ...
- go语言基础之append函数的使用
1.append函数的使用 作用:在原切片的末尾添加元素 示例: package main //必须有个main包 import "fmt" func main() { s1 := ...
- dp 密度 分辨率 屏幕 状态栏 标题栏 适配
一篇总结的非常完善的博文:http://www.jianshu.com/p/ec5a1a30694b 屏幕像素参数相关信息表格 屏幕级别 像素密度 每英寸像素数 通常分辨率 分辨率别称 默认 ...
- Java主流Web Service框架介绍:CXF和Axis2
CXF和Axis2是目前java平台上最主流的两个框架,虽然两个项目都隶属ASF,但却是基于不同思想和风格实现的,因此也各有所长. CXF:http://cxf.apache.org/ 是由过去的 ...
- Cognos 报表在列表上面显示汇总
一直以来,Cognos Report Studio设计报表的时候,汇总默认显示在列表下方: 1如图,拖一个列表 2运行如下,数据显示正常按日期排序 3选中订单笔数.订单金额,添加自动汇总 4:运行,可 ...
- PCL系列——怎样逐渐地配准一对点云
欢迎訪问 博客新址 PCL系列 PCL系列--读入PCD格式文件操作 PCL系列--将点云数据写入PCD格式文件 PCL系列--拼接两个点云 PCL系列--从深度图像(RangeImage)中提取NA ...