本文主要是介绍【教学类-26-01】20230321 背诵家长电话号码-Python数字填空(中班 偏数学和社会),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
效果展示:

背景需要
中班孩子需要背诵1个家长的手机号码,应对与家长失散情况下的联系(属于“社会-自我保护”的内容)
材料准备

word模板:

EXCLE模板

代码展示
'''
作者:阿夏
时间:2023年3月20日 22::3
目的:背诵家长号码-图形版-名字和班级(描字、填空、背诵、自编)
'''
import openpyxl
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 qn
import os
import randomclassroom=input('班级名称(如大1)\n')
h=int(input('11个数字需要几行?(1行)\n'))
s=int(input('随机填空需要几行?(4行)\n'))
k=int(input('空几个数字(3-5个)\n'))print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\背诵家长号码\零时Word')print('------------读取excle表单--------------')
wb = openpyxl.load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\背诵家长号码\家长电话号码.xlsx')# wb=用openpyxl打开存有号码的ExcelEx
phone = wb.active #phone=获取wb里面的数据print('------------读取 学号或者姓名--------------')
N=[]
for i in list(phone.columns)[2]:# 学号-0 班级1 姓名2 phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式N.append(phonestr)
print(N)# ['N', '1', '11', '24']print('------------读取 班级--------------')
C=[]
for i in list(phone.columns)[1]:# 班级 phonestr = str(i.value)# C.append(phonestr[:2]) # 不要“班”字
print(C[1:])#['CLASS', '大七班', '大七班', '大七班'] print('------------读取 学号--------------')
Number=[]
for i in list(phone.columns)[0]:# 学号 phonestr = str(i.value)# Number.append(phonestr)
print(Number[1:])#['学'] # print('------------读取 一个手机号--------------')
Number1=[]
for i in list(phone.columns)[4]:# 第一个手机号妈妈 phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式# print(phonestr)# 打印电话字符串Number1.append(phonestr)
print(Number1[1:])
# ['1361', '808'] 'print('------------ 28位家长的手机号拆开成1个1个--------------')list1=[]
list2=[]
lb=[]# 做成str格式的单个数字
for x1 in Number1[1:]: for x2 in x1:list1.append(x2)
# print(list1)
# ['1', '3', '6', '3', # 11个全部数字的基本样式
list2=[]
for a in range(int(len(list1)/11)): # 28条号码 aa=list1[a*11:a*11+11]list2.append(aa)
# print(list2)
# print(len(list2)) # 28
# num=len(list2)
# 11个全的基本样式[['1', '3', '6',], ['1', '5', '0']]list3=[]
for g in list2:for i in range(h):list3.append(g)
# print(list3)
# h等于几次 [['1', '3', '6'],['1', '3', '6'], ['1', '5', '0'], ['1', '5', '0']]# 11个缺失填空数字
# 1-空几个空格,遍历所有可能性,并去重复
sy=[]
n2=[]
n3=[]
for i in range(11): # 索引数字['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '11']sy.append(i)
# print(sy) # 11个空缺的多列(不相同)的基本形
for x2 in range(len(list2)): # 28份for x1 in range(s): # 重复5次随机抽取 空缺3格,list2=[]for a in range(int(len(list1)/11)): # 28条号码aa=list1[a*11:a*11+11]list2.append(aa)# print(list2)num=len(list2)# print(x2)n1=list2[x2] # 从list2的基本形里抽取不同位置的空缺# print(n1)a2 =random.sample(sy, k)# print(a2)for ss in range(len(a2)):print(n1[a2[ss]])n1[a2[ss]]= '_' # print(n1)# print(n1) n2.append(n1)
# print(n2) # 50
# print(len(n2)) # 50
# [['_', '3', '6', '3'],['1', '3', '6', '3],[1', '3', '_', '3'],[['1', '3', '6', '_',],[['1', '_', '6', '_'],['1', '5', '0', '_',]……]]# 从list3和n2中分别合并
list11=[]
list12=[]
list111=[]
list112=[]
# 先把相同[[],[]]合并在一起,,共用一套索引
for u1 in range(int(len(list3)/h)): # 20/10=2# 11个全里面抽取2行2个2个提取list11.append(list3[u1*h:u1*h+h])# 11个空缺里面抽取5行5个5个提取list11.append(n2[u1*s:u1*s+s])# 变成【【】,【】】的样式
for p1 in list11: for p11 in p1:# print(p11)list111.append(p11)
print(list111)list1111=[]
# 变成1个数字1个数字的样式
for y1 in list111:for y2 in y1:list1111.append(y2)
print(list1111)
print(len(list1111))# 770# 一组抽取2*11+5*11
list=[]
l=h+s
for j in range(int(len(list1111)/(11*l))):list.append(list1111[j*11*l:j*11*l+11*l])
print(list)
# # list=77个一组# print('------------ 单元格坐标--------------')
size=float(input('数字大小(48)\n'))
weight=int(input('表格宽度(11格)\n'))
height=int(input('表格长度高度(6格)\n'))# 表格位置
bg=[]
# for x in range(0,height):
# for y in range(0,weight):
for x in range(0,l):for y in range(0,11):ww='{}{}'.format('%02d'%x,'%02d'%y)bg.append(ww)
print(bg)
# ['0000', '0001', '0002', '0003', '0004', '0005', '0006', '0007', '0008', '0009', '0010', '0100', '0101', '0102', '0103', '0104', '0105', '0106', '0107', '0108', '0109', '0110', '0200', '0201', '0202', '0203', '0204', '0205', '0206', '0207', '0208', '0209', '0210', '0300', '0301', '0302', '0303', '0304', '0305', '0306', '0307', '0308', '0309', '0310', '0400', '0401', '0402', '0403', '0404', '0405', '0406', '0407', '0408', '0409', '0410', '0500', '0501', '0502', '0503', '0504', '0505', '0506', '0507', '0508', '0509', '0510']for z in range(0,num): #多少份 28doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\背诵家长号码\家长手机号码模板.docx') table = doc.tables[0] print('------------学号\班级写入,字体设置--------------')n=N[z+1]run=table.cell(0,4).paragraphs[0].add_run(n) # 这里的可以代表学号或者名字,把上面连接的数字改掉 姓名02 学号06 班级08run.font.name = '黑体'#输入时默认华文琥珀字体run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰run.font.size = Pt(28) #输入字体大小默认30号r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷table.cell(0,4).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中c=C[z+1]run=table.cell(0,2).paragraphs[0].add_run(c) # 班级08run.font.name = '黑体'#输入时默认华文琥珀字体run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰run.font.size = Pt(28) #输入字体大小默认30号r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷table.cell(0,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中number=Number[z+1]run=table.cell(0,6).paragraphs[0].add_run(number) # 班级08run.font.name = '黑体'#输入时默认华文琥珀字体run.font.color.rgb = RGBColor(250,250,250) #设置颜色浅灰run.font.size = Pt(28) #输入字体大小默认30号r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷table.cell(0,6).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中table = doc.tables[1] # 第二个表格 # t=['微软雅黑','宋体','黑体','幼圆']for t in range(0,int(len(bg))): # 28图案的长度为8*4=32个 遍历0-32(32个)pp=int(bg[t][0:2]) # 提取表格bg里面每个元素的第0个数字==单元格X坐标 t=索引数字qq=int(bg[t][2:4])k=list[z][t] # 提取list图案列表里面每个图形 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(48)# size) #输入字体大小默认30号run.font.color.rgb = RGBColor(220,220,220) #设置白色空心字# paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距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'%(z+1)))#保存为XX学号的电话号码word from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/背诵家长号码/零时Word/{}.docx".format('%02d'%(z+1))# 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/背诵家长号码/零时Word/{}.pdf".format('%02d'%(z+1)) # 要生成的文件:不存在# 先创建 不存在的 文件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/桌面/背诵家长号码/(打印合集) {}班-妈妈手机号(描摹+空格({}份{}人).pdf".format(classroom,num,num))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/背诵家长号码/零时Word') #递归删除文件夹,即:删除非空文件夹
终端运行


文件寻找


教学预设效果——描字+填空+书写+创编

活动过程:
时间:2023年2月22日 8:20-8:50
人数:27人
班级:中6班
打印说明
这一套废纸的一面印了一个小小的页眉,实际上两面大都是空白,因此这套废纸两边分别打印了两套电话号码(妈妈的、爸爸的),准备做两次背诵号码、描写号码使用。

学习过程:






学具扫描

分析:
学号 | 正面 | 反面 | 速度 | ||||||||
描字 | 连连看 | 填空 | 自编 | 自编内容 | 描字 | 填空 | 自编 | 自编内容 | 工具 | ||
1 | × | √ | √ | × | 无 | × | √ | × | 铅笔记号笔 | 0.7+0.7页描字 | |
2 | × | × | √ | √ | 父母手机号码+2023 | × | √ | √ | 父母手机号码+2023 | 铅笔记号笔 | 1.8页 |
3 | √ | √ | × | × | 无 | √ | × | × | 铅笔 | 0.7页 | |
4 | × | × | √ | √ | 父亲手机号码2次+自己的名字 | × | √ | × | 铅笔 | 1.7页 | |
5 | × | × | √ | √ | 123+爸爸手机号后面几个数字 | 未填写 | 铅笔记号笔 | 0.9页 | |||
6 | 没有来 | ||||||||||
7 | √ | × | √ | √ | 1-10 3-4之间随机填写 | √ | √ | × | 铅笔 | 1.5页 | |
8 | √ | × | √ | √ | 随机数字 | 未填写 | 记号笔 | 1页 | |||
9 | √ | × | √ | × | 无 | 未填写 | 记号笔 | 0.7页 | |||
10 | √ | × | √ | × | 1-22 随机数字 | 未填写 | 记号笔 | 1页 | |||
11 | √ | × | √ | √ | 全部是11 | 未填写 | 铅笔 | 1页 | |||
12 | √ | × | × | × | 无 | 未填写 | 铅笔 | 0.3页描字 | |||
13 | 不理解,提示一个字写一个字 | √ | × | × | 把11个全的号码描了 | 铅笔 | 0.1页 | ||||
14 | √ | × | √ | √ | 父亲手机号(部分数字随机) | 未填写 | 记号笔 | 1页 | |||
15 | × | × | √ | √ | 0-22个数字 | 未填写 | 铅笔 | 1页 | |||
16 | × | × | √ | √ | 父亲手机号3次 | √ | 铅笔记号笔 | 1.03页 | |||
17 | √ | × | √ | √ | 父亲手机号前段 | 未填写 | 记号笔 | 0.8页 | |||
18 | √ | × | × | √ | 全部是1 | √ | × | × | × | 记号笔 | 1.1页 |
19 | √ | × | × | × | 无 | √ | × | × | × | 记号笔 | 1页 |
20 | √ | √ | √ | × | 无 | 未填写 | 记号笔 | 0.7页 | |||
21 | √ | √ | √ | √ | 随便填写数字 | 未填写 | 记号笔 | 1页 | |||
22 | √ | √ | √ | × | √ | × | × | × | 记号笔 | 1.1页 | |
23 | √ | × | √ | × | 特点:从左向右写了统一列 | 未填写 | 记号笔 | 0.4页 | |||
24 | × | × | × | √ | 1-18 后面自己随意编 | √ | × | × | × | 记号笔 | 0.2页 |
25 | √ | × | √ | √ | 多个连续6、 8、1、7 | 未填写 | 记号笔 | 1页 | |||
26 | √ | × | √ | √ | 一排2 一排1 | 未填写 | 记号笔 | 1页 | |||
27 | √ | × | √ | × | 无 | 未填写 | 记号笔 | 0.5页 | |||
28 | √ | √ | √ | √ | 抄了2个爸爸手机号号码 | 未填写 | 记号笔 | 0.7页 |
数据解析:
0、1位幼儿未到园,1位幼儿不理解。两个样本删除
描字情况:第一面有7人没有描字(直接填空),19人用铅笔或记号笔对灰色数字进行描字。

连连看:最开始的时候,6位幼儿将各类相同数字进行连线游戏。教师提示后,幼儿开始描摹、填空

缺失数字填空:5位幼儿只描摹数字,没有填写任何一个空格。21位幼儿至少完成3个填空并正确

自编数据:16位幼儿在三个空行内自编数字。
类型一:父母的号码再抄写


类型二:连续数字1-20


类型三:无规律数字


类型四:重复数字



小结:幼儿自己创编的三行里,孩子写的内容:1-20的排序数字、年份、父母手机号、单个重复数字、无规律随机数字等
进度:10位幼儿跨页书写了两面的内容(父亲和母亲的号码)16位幼儿按要求完成一面的书写。

小结:从目测来看,幼儿完成量(从0.1页-1.8页)差异很大。57.14%幼儿完成一面书写,其余幼儿进行了跨页描摹、填空(没有书写自编3行)。从题量上看,11*10的书写量基本适合教学活动。
6、号码正确性,2位幼儿背的号码与打印的两个号码不符(手机号已经更新),大部分幼儿表现出对手机号码的陌生感,即使幼儿背诵的号码与打印的号码一致,幼儿第一反应还是说:这不是我爸爸妈妈的号码。

(平时幼儿只需要背,并没有机会看到这些数字的样子。经过老师逐一核对,几位聪明的孩子似乎有点看懂了)
填空正确性:23位幼儿填空时填写的数字正确,3位幼儿填空的数字不正确或者没有填空(无规律),总体来说,中班幼儿能理解照抄空缺号码的方法。未完成的孩子可能是我没有照顾到(没有一对一当面指导)
2023年3月24日
我又让孩子对另外一面手机号进行填写描画。着重对4位没有填空的孩子进行规律讲解(填空的内容和第一行的手机号码相同,可以竖着一列一列抄写同一个数字。几位幼儿很快就明白并完成至少1页填空的补全)

18号:第1次的学习结果
学号 | 第1次 | 第2次 |
18号 | ![]() | ![]() |
12号 | ![]() | ![]() |
经过第二次的手机号抄写练习,26位幼儿都初步知道了填空的内容是什么。但是幼儿书写速度有快慢(练习频率有关),因此7位幼儿并没有完全写完两面的所有内容。
感悟:
我班幼儿对家长的手机号码普遍比较陌生。需要家园配合,进行号码背诵指导。

部分幼儿能够背诵家长的手机号码,但还不能将“语音”与“数”进行有效对应(背的很快)
3.是否有手机号的经验对学习结果有影响。
(1)能背诵号码的孩子知道这些数字的用途(手机号),在完成“这份学具“时的速度快,由于会填空,所以他们不乐意再进行描字。
(2)对11个数字感到陌生的孩子,无法填空,只能听从教师指令,把已有的灰色数字进行描红(正面加反面的都描红)。
4.辐射推广:
2023年3月22日开展教学活动时,其他班级老师进教室检查自然角。中B班S老师看到孩子们在学习,对描摹数字的学具感兴趣,提出也需要这种数字字帖。
因为前期我用uibot批量提取了我园所有班级幼儿的手机号码,所以很快就能把他们班级的手机号贴到EXCEL,用Python代码批量了29份手机号码(5行描红+2行填空,因为在我班级教学后,感觉还是描红多一点比较适合中班)


2022年3月23日,这位老师用白纸打印了全部号码学具,并当面表示感谢。
“滴个写家长手机号的(学具)勿要特灵光哦,每个人塞勿一样,老有用场额!”
这篇关于【教学类-26-01】20230321 背诵家长电话号码-Python数字填空(中班 偏数学和社会)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!