Python代码力求可读性高,要有注释,注释最好也对齐。
"""
生成方块gif图,显示在海龟画图屏幕上。
这个程序使用了pillow模块,生成gif图像,
然后海龟会使用这些gif图作为自己的造型,
最后海龟会依次切换造型图以10X10阵列显示在屏幕上。
问题:所盖的图章静止不动,你能让它们动起来吗?
联系李兴球,免费发送答案!
"""
import os # 导入os模块
import turtle # 导入turtle模块
from PIL import Image # 从pillow模块导入Image
from random import randint # 从随机模块导入randint
def makecolor():
"""产生RGB颜色三元组"""
r = randint(0,255) # 红色份量
g = randint(0,255) # 绿色份量
b = randint(0,255) # 蓝色份量
return r,g,b # 返回rgb
def makegif(path,amounts):
"""在path路径下生成gif文件
path:文件夹路径
amounts:数量
"""
size = (10,10) # gif文件分辨率
images = [] # 新建列表
for i in range(amounts):
filename = f"{path}{os.sep}{str(i)}.gif"
c = makecolor() # 产生颜色
im = Image.new("RGBA",size,color=c) # 新建图形对象
im.save(filename) # 保存gif文件
images.append(filename) # 添加到列表
return images # 返回列表
def main():
"""主要执行函数"""
# 指定生成图片的文件夹,如果不存在,则创建它
folder = os.getcwd() + os.sep + 'test'
if not os.path.exists(folder):os.mkdir(folder)
images = makegif(folder,100) # 在folder生成100个gif文件
[turtle.addshape(im) for im in images] # 注册到造型字典
i = 0 # 建立索引号
turtle.ht() # 隐藏海龟对象
turtle.penup() # 抬笔
while i < 100: # 当i小于10的时候
r = i // 10 # 取行数
c = i % 10 # 取列数
x = c * 20 # 算x坐标
y = r * 20 # 算y坐标
turtle.goto(x,y) # 到达x,y坐标
turtle.shape(images[i]) # 切换造型
turtle.stamp() # 盖图章
i += 1 # 索引号加1
turtle.done()
if __name__ == '__main__':
main()
联系李兴球,免费发送答案!

