PythonChallenge游戏体验10-12
PythonChallenge-10地址 :
http://www.pythonchallenge.com/pc/return/bull.html
百度了一下,正确的规律应该如下:
a[0] = 1 由 1 个 1 组成,那么
a[1] = 11 由 2 个 1 组成,那么
a[2] = 21 由 1 个 2,1 个 1 组成,那么
a[3] = 1211 由 1 个 1,1 个 2,2 个 1 组成,那么
a[4] = 111221 …省略
python 中的 itertools 包中的 groupby 可以用来方便的解决。
有关 itertools 包介绍可以查看此链接
https://www.liaoxuefeng.com/wiki/1016959663602400/1017783145987360
from itertools import groupby
a = '1'
for i in range(30):
a = ''.join(str(len(list(v))) + k for k ,v in groupby(a))#将k v 加起来
print(len(a))
最后结果为5808
PythonChallenge-11地址 :
http://www.pythonchallenge.com/pc/return/5808.html
题目提示odd even->奇偶 那应该就是要我们把图片按奇偶行、奇偶列拆开为两幅图画
from PIL import Image
img = Image.open(r'file/11.png')
print(img.format,img.size,img.mode)
new_img = Image.new('RGBA',(800,800),(255,255,255))
new_array = new_img.load()
for x in range(0,640):
for y in range(0,480):
if (x%2 ==0) and (y%2 == 0): #取偶数行列
color = img.getpixel((x,y))
new_array[x/2,y/2] = color
new_img.show()
你会发现图片右上角有一串字母 evil 这里留出的白边是因为我预设置的图片大小太大了的结果
PythonChallenge-12地址 :
http://www.pythonchallenge.com/pc/return/evil.html
题目解析: 查看源代码,图片地址为evil1.jpg 没有思路百度得到解析,用evil2.jpg访问,出现一个图片,图片内容为not jpg --.gfx,于是用evil2.gfx 访问链接,打开是一个乱码文件,用IE下载gfx文件
题目的意思就是将gfx文件分为5份,然后在图片中显示
from PIL import Image,ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True #防止图片损坏出现报错
img = Image.new("RGBA",(4000,1000))
f = open('file/12evil2.gfx','rb').read()
for i in range(5):
im = open('file/img' + str(i) + '.jpg','wb')
im.write(f[i::5])
im = Image.open('file/img' + str(i) + '.jpg')
img.paste(im,(i*650,0))
img.show()
这里其实我生成的第四张图片是损坏的,但是不知道为什么把它粘贴到我生成的新图片中又能显示了,希望大佬指点
因此得到答案:disproportional