level 0
1 | print(2**38) |
level 1
1 | 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. |
字符串替换:k-m o-q e-g
我以为只是简单的替换,看了答案发现是找规律-> 移位加密
1 | import string |
level 2
1 | f = open('tmp.txt', 'r') |
level 3
1 | import requests |
level 4
1 | import requests |
peak.html
level 5
pick hell-> pickle
关于pickle
基础方法:dump和load vs dumps和loads(前者是写入文件,后者是直接返回)
包含两个类:Pickler and Unpickler(如果想进行更多的控制,可以创建这两个对象)
1 | import requests |
channel.html
level 6
1 | import re |
扩展:
bytes是一个类,https://docs.python.org/3/library/stdtypes.html#bytes
这个类有一个方法,bytes.decode(encoding=”utf-8”, errors=”strict”)
两个逆过程:bytes.decode(‘utf-8’) 和 str.encode(‘utf-8’)
访问hockey.html,得到it’s in the air,look at the letters,暗示看图片中的字母,得到oxygen
level 7
IO.BytesIO 内存中字节缓冲流的实现:https://docs.python.org/3/library/io.html#io.BytesIO
很多时候,数据读写不一定是文件,也可以从内存中读写,StringIO和BytesIO就是从内存中读写str和bytes
pillow PIL moudle中的图片处理模块PIL.Image https://pillow.readthedocs.io/en/stable/reference/Image.html
requests的几种response: 主要是r.text和r.content的区别,text是使用r.encoding解码后的,content是字节流
列表推导 [(x, y) for x in range(3) for y in range(3)]
1 | from PIL import Image |
http://www.pythonchallenge.com/pc/def/integrity.html
level 8
最近经常遇到TypeError: a bytes-like object is required, not ‘str’这种TypeError的报错,对于传入参数,参数类型这种报错,最简单的方法就是如下面在前面加上b表明为字节类型即可
1 | import bz2 |
level 9
这道题主要学习了一下PIL模块下的ImageDraw类,Image负责图片的open show等基本功能,ImageDraw负责图片的绘制,可以绘制各种图形,此题绘制的是多边形polygon,每个类各司其职
1 | from PIL import Image,ImageDraw |
输入cow.html,提示公牛,bull.html
level 10
look and say sequence:1,11,21,1211,111221…1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21def get_next(s):
num = []
l = 1
for i in range(len(s)):
try:
if s[i] == s[i+1]:
l += 1
else:
num.extend([str(l), s[i]])
l = 1
except:
num.extend([str(l), s[i]])
return "".join(num)
a = ['1']
while len(a) <= 30:
a.append(get_next(a[-1]))
print(len(a[30]))