• 【教学类-13-01】20221112《数字色块图5*7*9》(中大班主题《》)


     效果展示

     打印效果:(浅蓝色打印纸)

     背景需求:

         掌握了word表格单元格插入列表的方法,我想进一步制作“单元格色块填充”的“色盲图”

    但是纵向20*26格填色,发现设计一个填色图案需要很长时间,且单一图案无法随机生成更多的样式,同时大量数字密集,幼儿填色时容易伤眼睛、遗漏

     于是我想到把格子拆分成小块

     小格子里就可以制作一些幼儿熟悉的图案——数字

      

    WORD表格制作(在纵向A4)

    页眉写入个人信息

     分栏

     表格参数 

     两个表格中间的段落间距 

    代码设计:

    1. '''
    2. 作者:阿夏
    3. 时间:2022年11月11日数字像素图(A4竖板5*7 9个表)
    4. (A4竖排5*7*9 每套两个数字涂成不同的颜色 ))
    5. '''
    6. import os,random
    7. num=int(input('生成多少份\n'))
    8. Number=int(input('抽取几个数字(10个中取9个=9个)\n'))
    9. size=float(input('数字大小(最大28,建议25)\n'))
    10. weight=int(input('表格宽度(5格)\n'))
    11. height=int(input('表格长度高度(7格)\n'))
    12. print('----------第1步:提取所有图案------------')
    13. import random
    14. # m数字位置上的数字
    15. print('----------第2步:新建一个临时文件夹------------')
    16. # 新建一个”装N份word和PDF“的文件夹
    17. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\像素图\零时Word')
    18. print('----------第3步:随机抽取8个不重复的图案 ------------')
    19. import random
    20. from win32com.client import constants,gencache
    21. from win32com.client.gencache import EnsureDispatch
    22. from win32com.client import constants # 导入枚举常数模块
    23. import os,time
    24. import docx
    25. from docx import Document
    26. from docx.shared import Pt
    27. from docx.shared import RGBColor
    28. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    29. from docx.oxml.ns import qn
    30. from docxtpl import DocxTemplate
    31. import pandas as pd
    32. from docx2pdf import convert
    33. from docx.shared import RGBColor
    34. for z in range(0,num): #多少份
    35. m=str(random.randint(0,5)) # 涂色部分数字和非涂色部分数字不能一样
    36. n=str(random.randint(5,9)) # 涂色部分数字和非涂色部分数字不能一样
    37. N=[]
    38. def same():
    39. for r in range(0,len(nn)):
    40. nn1=int(nn[r][0])
    41. nn2=int(nn[r][1])
    42. for nnn in range(nn1,nn2):
    43. N.append(n)
    44. mm1=int(mm[r][0])
    45. mm2=int(mm[r][1])
    46. for mmm in range(mm1,mm2):
    47. N.append(m)
    48. # print(N)
    49. # 数字1 的坐标位置列表值
    50. nn=['06','04','04','04','03','06']
    51. mm=['02','01','01','01','03','00']
    52. same()
    53. # 数字2 的坐标位置列表值
    54. nn=['06','04','02','02','04','06']
    55. mm=['03','01','03','01','03','00']
    56. same()
    57. # 数字3 的坐标位置列表值
    58. nn=['06','04','02','04','02','06']
    59. mm=['03','01','03','01','03','00']
    60. same()
    61. # 数字4 的坐标位置列表值
    62. nn=['06','01','02','01','02','01','02','03','06']
    63. mm=['01','01','01','01','01','01','04','01','00']
    64. same()
    65. # 数字5 的坐标位置列表值
    66. nn=['06','02','04','04','02','06']
    67. mm=['03','01','03','01','03','00']
    68. same()
    69. # 数字6 的坐标位置列表值
    70. nn=['06','02','04','02','01','02','06']
    71. mm=['03','01','03','01','01','03','00']
    72. same()
    73. # 数字7 的坐标位置列表值
    74. nn=['06','04','04','04','04','06']
    75. mm=['03','01','01','01','01','00']
    76. same()
    77. # 数字8 的坐标位置列表值
    78. nn=['06','02','01','02','02','01','02','06']
    79. mm=['03','01','01','03','01','01','03','00']
    80. same()
    81. # 数字9 的坐标位置列表值
    82. nn=['06','02','01','02','04','02','06']
    83. mm=['03','01','01','03','01','03','00']
    84. same()
    85. # 数字0 的坐标位置列表值
    86. nn=['06','02','01','02','01','02','01','02','06']
    87. mm=['03','01','01','01','01','01','01','03','00']
    88. same()
    89. Nall=[] # [[],[],[]]的样式
    90. for aaa in range(0,int(len(N)/int(weight*height))): # 把35*9个数字,分割成35一组,35一组,一共10组(0-9)
    91. aaaa=(N[aaa*int(weight*height):aaa*int(weight*height)+int(weight*height)])
    92. Nall.append(aaaa)
    93. print(Nall)
    94. nine=random.sample(Nall,Number)
    95. print(nine)
    96. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\像素图\数字像素图模板.docx')
    97. for numbg in range(0,len(nine)): # [[],[],[]]的样式的索引数字
    98. # print(num1)
    99. NUMnum=nine[numbg]
    100. print(NUMnum)
    101. # 确定8*4表格的表格单元格坐标(如第1行第1格是0,0 ,第2行第3格是(1,2)
    102. bg=[]
    103. for x in range(0,height):
    104. for y in range(0,weight):
    105. ww='{}{}'.format(x,y)
    106. bg.append(ww)
    107. print(bg)
    108. # ['00', '01', '02', '03', '04', '05', '06', '07', '10', '11', '12', '13', '14', '15', '16', '17', '20', '21', '22', '23', '24', '25', '26', '27', '30', '31', '32', '33', '34', '35', '36', '37']
    109. # 提取表格单元格坐标和图形的坐标
    110. table = doc.tables[numbg] # 一共有9个表格
    111. for t in range(0,len(NUMnum)): # 图案的长度为8*4=32个 遍历0-32(32个)
    112. pp=int(bg[t][0]) # 提取表格bg里面每个元素的第0个数字==单元格X坐标 t=索引数字
    113. qq=int(bg[t][1])
    114. k=NUMnum[t] # 提取list图案列表里面每个图形 t=索引数字
    115. print(pp,qq,k)
    116. run=table.cell(pp,qq).paragraphs[0].add_run(k) # 在单元格0,0(第1行第1列)输入第0个图图案
    117. run.font.name = '黑体'#输入时默认华文琥珀字体
    118. run.font.size = Pt(size) #输入字体大小默认30号
    119. run.font.color.rgb = RGBColor(200,200,200) #设置颜色浅灰
    120. # cell.text =u""
    121. r = run._element
    122. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    123. table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    124. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\像素图\零时Word\{}.docx'.format('%02d'%(z+1)))#保存为XX学号的电话号码word
    125. from docx2pdf import convert
    126. # docx 文件另存为PDF文件
    127. inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word/{}.docx".format('%02d'%(z+1))# 要转换的文件:已存在
    128. outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word/{}.pdf".format('%02d'%(z+1)) # 要生成的文件:不存在
    129. # 先创建 不存在的 文件
    130. f1 = open(outputFile, 'w')
    131. f1.close()
    132. # 再转换往PDF中写入内容
    133. convert(inputFile, outputFile)
    134. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    135. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    136. import os
    137. from PyPDF2 import PdfFileMerger
    138. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word'
    139. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    140. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    141. pdf_lst.sort()
    142. file_merger = PdfFileMerger()
    143. for pdf in pdf_lst:
    144. print(pdf)
    145. file_merger.append(pdf)
    146. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/像素图/(打印合集)像素图数字竖版{}乘{}({}份).pdf".format(weight,height,num))
    147. file_merger.close()
    148. # doc.Close()
    149. # # print('----------第5步:删除临时文件夹------------')
    150. import shutil
    151. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word') #递归删除文件夹,即:删除非空文件夹

    重点说明:

    终端运行

     输入单元格的数字,随机取值(两个不能相同)

    确定“数字”的构成位置:

     以数字1为例:N列表里先提取空白的6个,再添加蓝色的2个、再添加4个空白、1个蓝色、4个空白、1个蓝色、4个空白、1个蓝色、3个空白、3个蓝色、6个白色、0个蓝色(一共12个 2组)

    根据索引数量,逐一获取需要生成的空白的数量、蓝色的数量,将随机出来的空白填写数字和蓝色填写数字按照指定数量添加到N列表中

    把N列表(一共35*10个数字)分割程35个数字的10组。[['','',''],['','',''],['','','']]的样式。

    random.sample 从10组中随机抽取9组(打乱出现顺序,少一个数字组)

     从[['','',''],['','',''],['','','']]中抽单独的取NUMnum=['','','']

     关键点:

    效果

    效果再显示——0-9随机抽取9个数字,排序打乱

    做两套题目(大1班、中3班、都试试教学效果),有无需要继续改进的地方。

     

    幼儿学习及作品展示

    时间:2022-11-14 15:00-15:30

    班级:中3班

    人数:23人

      

      

     

     

     

     

     

     

     

     

    作品分析: 

    数字填色图(A4 5*7 9个)
    时间#### 班级中3班 人数23人问题
    学号完成数量外圈内部数字数字纯涂色其他说明汇总
    39740内部用蓝线 外部红色快 
    4000832单单个格子涂色,不同的色点“我不会写学号”  8和3外形也相似、
    50559全部是5,幼儿只涂粉红(虽然下面涂色粉和橙色。线条状有白点两个数字都是5,无法涂两种
     000959黑、白、蓝、红、紫、绿、橙、粉、黄  线条状 
    60659全部是5,幼儿只涂粉红(虽然下面涂色粉和蓝色)涂色饱满56数字外形太相近
    76红、灰、橙、红、绿、黑绿、黄、粉、蓝、蓝、黄530外圈、内部都涂了色块,从下向上涂。涂色饱满53数字外形太相近
    84红、蓝、绿、黄粉、红、蓝、橙810从上向下 涂色饱满 
    9        
    10000915紫、绿、多色点状混、深绿、浅绿(下面预设8=橙 16=浅蓝 
    149红、橙、绿、黑、紫、红、黄、红、红蓝、蓝、黄、红、绿、橙、橙、黄、黑950完全涂色了4个,5个定好色彩轮廓线和(预设9=红 5=黄 共有9张,缺少9的确缺少了9
    153930色块饱满无白点。慢工出细活、写了名字部首吉
    160蓝、粉、红、橙、紫留空805边缘一圈涂色,中间保留数字的矩阵位置(预设橙色、蓝色写名字
    173绿、浅蓝、深蓝紫色、橙色、紫色930从下向上画,预设3=紫、9=绿色 
    1811粉色1黄色838纯涂色紫色、红、粉黄、灰、浅绿、深绿、紫色、黄色、留空(涂色饱满无白点,大量线条画出框外 8和3外形也相似、
    199红线绿线750与老师示范一样,只用红色线条、绿色线条勾画(预设绿色、红色)“这个是1吗?(1的头底有横线)
    20000943蓝色、橙色、粉色、部分线条连线)9连线、4连线) 
    2117211个教师指导(预设7=粉)、涂橙色颜色饱满,上面写了一个4,抄写了哦同班抄写15号的学号和名字吉
    233609多次求老师,3个都是教师指导,教师画出蓝色数字,鼓励幼儿只涂周围的黄色。”我不会“,4次求助老师。先把所有的底色涂成浅色,然后再找数字
    240绿510幼儿不会做,求助老师写学号,教师帮幼儿画出几个数字,但幼儿不理解,自己涂了几笔就上交了(预设两个黑)不会写学号,老师协助
    257620涂色块面粗犷,初步找出数字结构位置。 
    276深蓝840从下向上画,最开始的几个数字都是一个个格子单个涂色,后期发现部分格子可以连起来一起画。 
    28000512黄、观摩他人后进行涂色
    30100955教师帮助填了第一个,后期幼儿还是整片涂色为主蓝、绿、紫、粉、红写了名字“张”
    314橙、红、蓝、黄绿、粉、紫、白(未涂)830从上到下,最开始的几个数字都是一个个格子单个涂色,后期发现部分格子可以连起来一起画。,先涂外侧的数字、留空白,再涂里面的数字,缺少2,验证后错误 
    32000554个全涂+4个U型涂色+2个点杂色幼儿把各种涂色方法试了一下(预设5橙色)两个数字都是5,无法涂两种

     作品分析:

    一、涂色篇:(数字涂色、正面涂色)

    1、完成卡片数字的数量(找出数字图)

    23位幼儿中有3位幼儿完成9张卡片、1位幼儿完成7张卡片、2位幼儿完成6张卡片、2位幼儿完成4张卡片、3位幼儿完成3张卡片、3位幼儿完成1张卡片。

    10位幼儿完成0张卡片(这些幼儿都是整张涂色,见后文)

    2、完成卡片涂色的数量(点、线、面涂色)

    半数幼儿对数字图色块进行点涂色、线涂色、面涂色处理。

    从数量来看,4位孩子完成9张卡片的纯色涂色、1位完成8张涂色、3位完成5张涂色、1位完成3张涂色、2位完成2张涂色、1位完成1张涂色。

     还有1位幼儿4张全涂+4张U型涂色+2张个点杂色(综合涂色:点、线、面)

    所有幼儿都涂色了,但是时间上看,很多中班孩子并有把所有数字卡片都涂完,可以考虑到9张卡片的题量减少。

    3、两份作业上的卡片数字无差异——两个都是5

    案例一:检查到5号时,老师照例提醒:“你怎么全部画粉红色了?里面还有另一个数字?”

    结果我发现这份灰色提示数字都是5——一时语塞。

    虽然左下角幼儿选了粉色和橙色两种颜色,但数字都是5,让整个页面无法区分颜色。 

    案例二:后续扫描作业后,发现32号的点线面涂色作业的灰色数字也全部是5

     为什么会出现两个5?检查代码发现了问题:

     原来我把random.randint(x,y)和range(x,y)的数字范围混同了。

    for i in range(0,5)

    常用的for i in range(0,5) 抽取的数字是0,1,2,3,4,(没有5)。for i in range(5,9) 抽取的数字是5,6,7,8,(没有9)。因此我习惯性在random.randint(x,y)中也用了“算头不算尾”的思路

    random.randint(0,5)

    但这里是随机抽取数字,算头也算尾

    random.randint(0,5)  随机抽取 0,1,2,3,4,5

    random.randint(5,9)  随机抽取 5,6,7,8,9

    因此,两者之间都可能抽到5.可以改成:

    random.randint(0,4)  随机抽取 0,1,2,3,4

    random.randint(5,9)  随机抽取 5,6,7,8,9

    4、数字外形相似度高,对幼儿涂色行为的影响

    缘起:坐在5号同学左侧的6号同学也是整面涂色(她的蜡笔盒里的粉红是深粉色,把灰色数字覆盖了)虽然她的数字是5和6,但是灰色的5和6在视觉上外形有点相似,加上她周围的同伴都是整面涂色,所以幼儿也进行了整面涂色)

       

     随机匹配的0-5、5-9之间的数字的外形相似度是否会影响幼儿辨认?将纯涂色的幼儿筛选后,

    发现一些容易影响幼儿视觉判断的数字组。

    1、典型的数字——8和3(2人)、9和5(2人)、6和5(1人) 。

    2、圆形结构数字——8和0、6和0

    3、不确定原因——5和1、9和1、7和2、9和4

     

          从数据来看,数字外形近似的确有一定的视觉干扰,部分幼儿无法辨认两个数字,就统一进行了块面涂色处理。

           从年龄特点来看,由于中班幼儿会将2和5,6和9左右上下倒置,中3班2号、30号、23号、29号等小朋友的学号就常常出现左右镜像,上下镜像的写法,因此在选择涂色数字时,最好需要避开一些容易外形相似,结构容易互换的数字。

    5、浅蓝纸上灰色数字颜色不凸显,幼儿数字辨识度降低

    与此同时,研究者发现,8位孩子能够理解并找出隐藏在单元格中的矩形数字,数字相似度只是影响幼儿辨识的一方面因素。

     “老师,这个是数字5吗?”活动中有一位孩子指着浅蓝色纸张的一个格子里的一个数字问

    老师凑近纸张辨色,点头说:”是5”

    浅蓝色纸张上打印灰色数字,小数字完全不能一下子看清楚。

     因此,对于中班幼儿年龄的孩子来说,太小的数字不能使用灰色(看不清楚)

    有色打印纸上的小数字必须用深色(黑色)

    6、矩形数字的辨识——勾1

    做题时,19号男孩指着勾线的1问:“这是1吗?”

    “是的,这是英文里面的1,你看左边有一个7了”

    他右侧的男孩闻言插嘴道:“我见过这个1”

    19号男孩却说:“可是我的1(学号19)不是这么写的” 

    “有道理,这种勾子1和这里的7有点像,那下次我改成你说的这种竖条1,没有勾和横线。“

     有色打印纸上的小数字必须用深色(黑色)

     

    感悟:

    从幼儿操作中,我发现很多学具方面需要调整的内容

    1、涂色数都是5,范围修盖—— random.randint(x,y)(取头也取尾)和range(x,y)(取头不取尾)的数字范围是不同,不能混同。

    2、小数字不要灰,最好深色——幼儿视觉敏度有差异,部分幼儿难以辨认灰色的、小数字的外形,需要加深小号数字的颜色

    3.、小数字数量多,外形要选——排除3和8、2和5、8和9等有一定外形相似(上下镜像、左右镜像)的数字,一定程度也能解决镜像数字差异带来的问题。

    时间有限,加上蜡笔画画手指染色,暂时不提倡剪下来当扑克牌(弄脏书包抽屉)。

  • 相关阅读:
    自实现朴素贝叶斯分类器with案例:基于SMS Spam Collection数据集的广告邮件分类
    R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的方差(使用.符号和~符号指定函数语法purr)
    用信号量实现进程互斥,同步【操作系统学习笔记】
    数据治理-GDPR准则
    Real-Time Rendering——7.9 Irregular Z-Buffer Shadows不规则Z缓冲阴影
    vue 手写手动轮播 且图片宽度不一样
    Unity解决:导出AndroidStudio工程 出现如下报错的解决方法
    如何写http mjpeg server
    计算机毕业设计Java班主任管理系统(源码+系统+mysql数据库+lw文档)
    【分布式搜索引擎es】
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/127821728