【教学类-19-03-01】20221127《ABBABB式-规律排序涂色-A4竖版2份》(中班)

展示效果:

单人使用样式:

  单页打印样式

 背景需求:

中班幼儿需要掌握ABBABB的排序规律

  

前文制作了ABCABC单元格色块,完全套用ABC排序word表格,调整python的代码,随机生成ABB排序样式,引导幼儿进行ABBABB固定颜色涂色。

 Word模板设置 

0、就改一个标题

 其他都和ABC模板一模一样。

1、插入表格1*9、

2、左侧的空心黏贴表和右侧的灰色黏贴边都是”插入-形状-矩形“

3、表格的框线:粗的6磅,细的1.5磅

代码设计:

# https://www.codenong.com/cs106022019/

'''

作者:阿夏
时间:2022年11月27日ABBABB规律填色 竖版2份4条)
提取两个数字,并将第2个数字做成2份,

'''

from docx import Document
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
import random,os

# 新建表行数
rowsNum = int(input('行数(1行)\n'))
# 新建表列数
colsNum = int(input('列数(只要3个=ABB)\n'))
Num = int(input('每套题目随机抽取几个不重复颜色(一共9个颜色,抽9个)\n'))
rowrow= int(input('几条?(4)\n'))
num= int(input('生成多少份?\n'))

# 表格首行背景色设置
# 背景色,根据需要调整,可参考站长之家选色 http://tool.chinaz.com/Tools/PageColor.aspx
# (米罗12色蜡笔(去掉白色'FFFFFF'和黑色'000000',黑色涂色很容易显脏)
# # 白色\#黑色\# 灰色\# 红色\# 橘黄\# 黄色\# 森林绿\# 黄绿色\# 蓝色\# 青色(天蓝)\# 靛青色(紫色)\# 粉红
colorall=['FFFFFF','000000','CCCCCC','FF0000','FF8000','FFFF00','228B22','7FFF00','0000FF','00FFFF','4B0082','FFC0CB']
colorsmall=colorall[3:]# 排除白色和黑色
print(colorsmall)

print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\零时Word')

for nn in range(1,num+1):    
        # for e in range(0,2):        # 一页两份
        doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\规律填色模板(竖版9列ABBABB).docx')
        # # 方案一:一页中,第一套8个颜色和第2套9个颜色中间,只有1-2个不一样(大部分是2个不一样,少量1个不一样)
        # 随机抽取8个图案,
        colors=[]
        color1=random.sample(colorsmall,Num)        
        for c1 in color1:
                colors.append(c1)
        color2=random.sample(colorsmall,Num)
        for c2 in color1:
                colors.append(c2)
        print(colors)
       
        color=[]
        for tt in range(0,int(len(colors)/2)):
                color.append(colors[tt*2])  # 把单数图案填入1次 索引0、2、4、6
                for ee in range(2):  # 把双数图案复制2份 索引1,3,5,7  
                        color.append(colors[tt*2+1])  # 填入2次
        print(color)
        # ['FF9912', '4B0082', '4B0082', 'FF0000', '00FFFF', '00FFFF', '0000FF', '7FFF00', '7FFF00', 'FFC0CB', 'FFFF00', 'FFFF00', '228B22', 'FF9912', 'FF9912', '4B0082', 'FF0000', 'FF0000', '00FFFF', '0000FF', '0000FF', '7FFF00', 'FFC0CB', 'FFC0CB', 'FFFF00', '228B22', '228B22']
        print(len(color))
        # 27,实际需要8*3-24个

        # # 方案二:一页中,第一套8个颜色和第2套8个颜色是一样的。
        # color=[]
        # for e in range(0,3):      # 至少需要24个颜色(有重复)抽9个乘以3次=27个
        #         colors=random.sample(colorsmall,Num)  # 共9个颜色,如果抽8个,会出现ABB ABA AAB等样式,所以改成抽取9个,就不会有重复,因此就需要抽3次
        #         for k in colors:
        #                 color.append(k)
        # print(color)
        # # ['FF0000', 'FFFF00', '00FFFF', '7FFF00', 'FF9912', 'FFC0CB', 'CCCCCC', '0000FF', '7FFF00', 'FFC0CB', 'CCCCCC', '228B22', 'FFFF00', 'FF0000', '00FFFF', '4B0082']


        # 表格位置
        bg=[]
        for b in range(0,rowrow*2):                # 四个表
                for x in range(0,rowsNum):        # 1行*8列
                        for y in range(0,colsNum):                # 只要填充2个格子ABAB
                                ww='{}{}'.format(x,y)
                                bg.append(ww)
        print(bg)   
        # ['00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01']

        for b in range(0,rowrow*2):      # 几条 0123 4行8个不重复色块
                if b==3:
                        pass
                elif b==7:
                        pass
                else:
                        table = doc.tables[b]          # 4567(8)行

                        for t in range(b*colsNum,b*colsNum+colsNum):   # 02
                                pp=int(bg[t][0])    
                                qq=int(bg[t][1])                 
                                k=color[t]  
                                print(k)                      # 
                        
                                shading_list = locals()    
                                shading_list['shading_elm_'+str(qq)] = parse_xml(r'<w:shd {} w:fill="{bgColor}"/>'.format(nsdecls('w'),bgColor = k))
                                table.rows[pp].cells[qq]._tc.get_or_add_tcPr().append(shading_list['shading_elm_'+str(qq)])
                        
        doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\零时Word\{}.docx'.format('%02d'%nn))   
        from docx2pdf import convert

        # docx 文件另存为PDF文件
        inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在
        outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word/{}.pdf".format('%02d'%nn)  # 要生成的文件:不存在
        # 先创建 不存在的 文件
        f1 = open(outputFile, 'w')
        f1.close()
        # 再转换往PDF中写入内容
        convert(inputFile, outputFile)
    
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path =  'C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/(打印合集)规律填色A4竖版2份ABBABB({}份).pdf".format(num))
file_merger.close()
# doc.Close()

# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明:

输入数据

  运行过程

 随后删除过渡信息

 单元格背景色的确定——米罗可儿12色蜡笔的12种颜色(使用RGB颜色)

 

 随机抽取2次,每次抽9个颜色,合起来一共18个颜色。实际需要16个图案(8+8*2),因此一共是24个图案。前8个在1-4表格内,后8个在4-8表格内

 制作ABB样式的列表

  坐标XY

重点:如何单元格填充背景色

效果展示:

4张A4纸=8份作业 

颜色样式ABB,同一页的6行图案AB颜色都不同

  预设玩法:

1、ABBABB添色——单元格框线的粗细提示幼儿三个颜色是一组的。

2、有黏贴边——纸条剪下来,黏贴成手镯、长条纸等

3、自由涂色——女孩更喜欢涂各种颜色(彩虹系列)

教学展示:

时间:2022年12月16日上午9:00-10:30

班级:大1班

人数:6人(疫情只来了6人)

背景说明:

管控放开后,混管阳性越来越多,幼儿园的孩子逐渐稀少起来。今天看到大1班只来了6人(2男4女)于是把一些准备好但来不及做的学具发给6位孩子玩一玩(包括100游戏棋、ABB排序彩条、世界杯七巧板等),拍点照片(下周开始我是中7班班主任,没机会大班做实验了)

活动过程:

其他小朋友一开始都选了游戏棋盘,10号女孩选了ABB涂色卡

 

 

 

 

 

 

 

 

 

 

 

粉衣女孩的兴趣在于用各种剪下的白条做小本子。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值