【教学类-23-01】20221217《不会写学号的中班幼儿的学号描字贴》(中班描字)
成品样式:
每个孩子3页A4横板,供6次书写
打印样式:
背景需求:
前期进行6次的Python学具教学活动,对中3班幼儿书写学号和名字的情况评估:
筛选出10位需要练习学号的幼儿。
学号、名字需要持续性、强化性练习,才能形成肌肉记忆。我需要为幼儿做几套学号描字贴。
word表格设置
竖版,页边距:上下左右0.7CM
6个格子中间必须有空行。
边框线1磅
学号数字的大小,数字在单元格内上下左右居中对齐
EXCLE设置:
表格放在第一个
一共10个人的学号书写不规范(镜像字、字形难以辨认、完全不会写等)
代码发布:
为了缩减长度,这个代码我研究很久,理论上还可以更精炼。但目前水平就这样了。
'''
作者:阿夏
时间:2022年12月17日
名称:中3班不会写名字的孩子练习学号)
'''import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块import os,time
import docx
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorwb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0) #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col2=sheet.col_values(1)# 名字
num=len(col1)-1 # 第一列去掉第一行list=[]
# 生成 基本组:“学号“
for i in range(1,len(col1)):# for d in range(8):name='{}'.format (int(col1[i]) ) #学号list.append(name)
print(list)# 32个名字# 单元格坐标
# zb=['35','46','55','68','44','79']
zb=['34','45','54','67','43','78']# 6个表格所有的table[bg]
bg=[]for i in range(0,len(zb)):# print(i)for x in range(0,int(zb[i][1])): # 行for y in range(0,int(zb[i][0])): #列bg.append('{}{}'.format(x,y))
# print(len(bg))
# # 162
# print(bg)
# ['00', '01', '02', '10', '11', '12', '20', '21', '22', '30', '31', '32', '00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '30', '31', '32', '33', '40', '41', '42', '43', '00', '01', '02', '03', '04', '10', '11', '12', '13', '14', '20', '21', '22', '23', '24', '30', '31', '32', '33', '34', '00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55', '60', '61', '62', '63', '64', '65', '00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06', '10', '11', '12', '13', '14', '15', '16', '20', '21', '22', '23', '24', '25', '26', '30', '31', '32', '33', '34', '35', '36', '40', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53', '54', '55', '56', '60', '61', '62', '63', '64', '65', '66', '70', '71', '72', '73', '74', '75', '76']# 把zb做成索引数量
# 第一次,X*Y=Z
# zb=['34','45','54','67','43','78']
zb1=[]
zb1.append(0)
for t in range(len(zb)):b=int(zb[t][0])*int(zb[t][1])zb1.append(b)
print(zb1)
# zb1=[0, 12, 20, 20, 42, 12, 56]# 第二次:反复相加
zb2=[]
# zb1= [0, 12, 20, 20, 42, 12, 56]
for m in range(1,len(zb1)+1):zb2.append(sum(zb1[:m]))
print(zb2)
# zb2=[0, 12, 32, 52, 94, 106, 162]# 第三次,提取两个索引数字
bg_all=[]xx = zb2[0:len(zb2)-1]
yy = zb2[1:len(zb2)]
zz= dict(zip(xx,yy))
# print(bg_all)
# zz={0: 12, 12: 32, 32: 52, 52: 94, 94: 106, 106: 162}# 6套坐标索引分割开来
for k,v in zz.items(): # 提取键key(第一个)值value(第二个)print(k,v)g=bg[int(k):int(v)]# print(g)bg_all.append(g)
print(bg_all)
[['00', '01', '02', '10', '11', '12', '20', '21', '22', '30', '31', '32'], ['00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '30', '31', '32', '33', '40', '41', '42', '43'], ['00', '01', '02', '03', '04', '10', '11', '12', '13', '14', '20', '21', '22', '23', '24', '30', '31', '32', '33', '34'], ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55', '60', '61', '62', '63', '64', '65'], ['00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23'], ['00', '01', '02', '03', '04', '05', '06', '10', '11', '12', '13', '14', '15', '16', '20', '21', '22', '23',
'24', '25', '26', '30', '31', '32', '33', '34', '35', '36', '40', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53', '54', '55', '56', '60', '61', '62', '63', '64', '65', '66', '70', '71', '72', '73', '74', '75', '76']]size=[72,60,67,48,86,36]# # # font=['楷体','楷体','楷体','隶书','华文新魏','华文彩云','方正姚体','幼圆']# 8种字体print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')
# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Wordfor n in range(0,num): # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\中3班不会写学号的孩子的描字帖练习册.docx")for t in range(0,len(bg_all)):table = doc.tables[t] for p in range(0,int(len(bg_all[t]))):# 一共有9个表格pp=int(bg_all[t][p][0]) # 提取表格bg里面每个元素的第0个数字==单元格X坐标 t=索引数字qq=int(bg_all[t][p][1]) # f=font[t] # 字体格式k=list[n] # 从4名字里提取名字\ss=size[t]print(pp,qq,k)run=table.cell(pp,qq).paragraphs[0].add_run(k) # 在单元格0,0(第1行第1列)输入第0个名字run.font.name = '楷体' #输入时不同字体run.font.size = Pt(ss) #输入字体大小80或68号run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '楷体' )#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordfrom docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n) # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile,'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)from docx2pdf import convertprint('----------第4步:把都有PDF合并为一个打印用PDF------------')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/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)中3班不会写学号的孩子的描字帖练习册({}份).pdf".format(num))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`
重点说明:
提取学号,因为日常幼儿写字不会在个位数字前加0,加上模板里用了单元格分割数字位置,所以1-9可以用单个数字展示。这里就不用‘%02d'%i来补全两位数
手动输入6个表格
把6个表格的坐标数字都提取在一起
重点1:因为每个表格里面的数量不同,因此需要反复提取索引值,确定每个表内的填入数量
运用items提取键值(第1、2个索引数字) 生成[[],[],[]]的列表样式
写入6个表格的各个单元格
保存
学具展示及制作:
不会写的幼儿描字练习:
2022年12月16日,中3班只有8人,向中3班发放10份描字帖,只有2位幼儿在园进行书写,其余本子都放在幼儿抽屉里。待幼儿返园后练习(每天半页)
感悟:
1、有字帖是基础,指导要跟上
光为幼儿提供字帖还不够,必须要指导幼儿对字形进行结构理解,书写笔画的练习。
(9号写着写着,9的竖条变短了,自己写学号时,字形歪斜厉害)
(17号对粗体字进行反复涂色,加粗1的的线条。自己写学号时,7没有弯斜。)
2、不等表格数量,测试获成功
前期我在《像素数字卡片》里实验了多表格等量单元格的数字写入。
本次6个表格的单元格数量都不同,因而我花了5天反复调整代码,想用遍历方式实现多表格不等量单元格的数字写入,顺利实现缩短代码的目标。
学无止境!
由于新冠疫情,上海发布通知2022年12月19日开始幼儿不再入园,我也没有实验对象了,因此学具设计暂时告一个段落,研究方向转向对前期案例的整理撰写,为小课题研究做好基础性资料。
【教学类-23-01】20221217《不会写学号的中班幼儿的学号描字贴》(中班描字)相关推荐
- 【教学类-19-03】20221127《ABBABB式-规律排序-A4竖版2份》(中班)
展示效果: 单人使用样式: 单页打印样式 背景需求: 中班幼儿需要掌握ABBABB的排序规律 前文制作了ABCABC单元格色块,完全套用ABC排序word表格,调整python的代码,随机生成AB ...
- 【教学类-19-02】20221127《ABCABC式-规律排序-A4竖版2份》(中班)
展示效果: 单人使用样式: 单页打印样式 背景需求: 中班幼儿需要掌握ABCABC的排序规律 前文制作了ABAB单元格色块,微调word表格的列数,调整python的参数,随机生成ABC排序样 ...
- 【教学类-24-01】20230306《数字火车-升序1-9取5填空1》(中班《玩具总动员》)
成果样式: 背景需求: 中班1位老师需要"排序类学具"供幼儿提高数能力.考虑到无法彩色打印图案,我暂时就设计一些数字.黑白图形(点.字符)的排序.针对中班年龄特点,先做<数字 ...
- 【教学类-12-03】20221106《连连看横版8*4(2套题目 适合中班))(中班主题《我们的城市》)
效果展示 背景需求: 前期制作了<连连看8*4-不重复16个)<连连看12*4-不重复24个) 问题分析: <连连看8*4-不重复16个)<连连看12*4-不重复24个)采用的 ...
- 【教学类-32-01】十二生肖1.0版(绘画+手工+排序+分类+玩牌)(中班:偏科学-数)
作品展示 背景需求--从数字到图片 最佳孩子们做Python纸类(数学)的频率比较高.但都是数字类(加减法.门牌号.火车箱.电话号码等)我想翻新花样,设计新的内容,就想到了水果图片.动物图片. 百度图 ...
- 【教学类-34-05】拼图(彩色图片+圆角凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)
图片展示: 背景需求: 最近班级孩子得了传染病,来了2位孩子. 我觉得:人少的话,孩子们就有充足的时间去拼那些带有凹凸槽的自制彩色图形拼图. 难点: 1.从直线剪切(方形拼图)转向圆弧剪切(凹凸拼图) ...
- 【教学类-22-01】20221207《八款字体的描字帖-2*4格横条-用订书机》(中班描字)
成品样式: 80号字(适应2-3个名字的大小) 68号字(适应4个名字大小(2-3个名字也可以用,字会很小)) 打印样式: 背景需求: 前期进行多次的Python学具教学活动,对中3班.大1班幼儿书写 ...
- 【教学类-29-02】20230402《门牌号-黏贴版打印数量调查教学实践(6层*5间)》-(中班《我爱我家》偏数学)
背景需求 前文介绍了门牌号黏贴版的制作过程,及4款分层学具的参数设置.但是我很快又发现了两个问题 [教学类-29-01]20230401<门牌号(6层*5间)-黏贴版(中班<我爱我家> ...
- 【教学类-09-02】20221022《动物棋10*10 S形迷宫》(数字续写和骰子游戏)(大班主题《动物花花衣》)
效果展示: 背景需求: [教学类-09-01]20221022<动物棋>的排列方式是10*10矩阵(每行都是从小到大升序排列)从游戏棋的角度出发,它并不是一条线连贯的路线.游戏时需要&qu ...
最新文章
- Flink升级到1.4版本遇到的坑
- xampp mysql 端口被占用_xampp安装后apache 80端口被占用的解决方法
- JFinal之学习资源
- shell脚本中的坑
- App设计灵感之十二组精美的插画引导页设计案例
- 光磁记录实现数据冷存储
- telnet实现本地回显
- 二叉树经典题之将二叉树分层打印
- mvc:annotation-driven /注解意义(转)
- springMVC_08文件上传
- JAVA 编程 练习题
- 4.凤凰架构:构建可靠的大型分布式系统 --- 透明多级分流系统
- Mac如何拷贝文件到移动硬盘
- Vue中在线引用iconfont图标
- java Ofd 转图片_OFD文件怎么转换成图片格式
- Use Eager execution or decorate this function with @tf.function.
- 交换机路由器命令大全
- Gos —— shell程序
- 投影仪亚马逊审核标准FCC认证
- 【数据库】国土空间规划数据库(全域)_模板空库
热门文章
- python爬取百度天气接口【实战记录】
- 人类刚给火星送去Linux系统,以及一款安卓手机芯片
- 中国人民银行面试题目(经典题目2)
- No compiler is provided in this environment. Perhaps you are run
- 田蕴章书法讲座《每日一题,每日一字》(2) 文字整理 ——火字、必字与书法笔顺
- 利用Photoshop通道制作BMP格式的透明图标
- OGRE粒子系统脚本详解
- win10设置了睡眠时间,但两分钟无操作仍然黑屏。解决办法
- sim卡没坏但苹果手机无服务_苹果6sp无服务信号不好解决办法
- Es6箭头函数详细用法