【教学类-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 random

classroom=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):   #多少份   28
    doc = 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 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(28)  #输入字体大小默认30号
    r = run._element
    r.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)    # 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(28)  #输入字体大小默认30号
    r = run._element
    r.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)    # 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(250,250,250) #设置颜色浅灰
    run.font.size = Pt(28)  #输入字体大小默认30号
    r = run._element
    r.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._element
        r.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位幼儿不理解。两个样本删除

  1. 描字情况:第一面有7人没有描字(直接填空),19人用铅笔或记号笔对灰色数字进行描字。

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

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

  1. 自编数据:16位幼儿在三个空行内自编数字。

类型一:父母的号码再抄写

类型二:连续数字1-20

类型三:无规律数字

类型四:重复数字

小结:幼儿自己创编的三行里,孩子写的内容:1-20的排序数字、年份、父母手机号、单个重复数字、无规律随机数字等

  1. 进度:10位幼儿跨页书写了两面的内容(父亲和母亲的号码)16位幼儿按要求完成一面的书写。

小结:从目测来看,幼儿完成量(从0.1页-1.8页)差异很大。57.14%幼儿完成一面书写,其余幼儿进行了跨页描摹、填空(没有书写自编3行)。从题量上看,11*10的书写量基本适合教学活动。

6、号码正确性,2位幼儿背的号码与打印的两个号码不符(手机号已经更新),大部分幼儿表现出对手机号码的陌生感,即使幼儿背诵的号码与打印的号码一致,幼儿第一反应还是说:这不是我爸爸妈妈的号码。

(平时幼儿只需要背,并没有机会看到这些数字的样子。经过老师逐一核对,几位聪明的孩子似乎有点看懂了)

  1. 填空正确性:23位幼儿填空时填写的数字正确,3位幼儿填空的数字不正确或者没有填空(无规律),总体来说,中班幼儿能理解照抄空缺号码的方法。未完成的孩子可能是我没有照顾到(没有一对一当面指导)

2023年3月24日

我又让孩子对另外一面手机号进行填写描画。着重对4位没有填空的孩子进行规律讲解(填空的内容和第一行的手机号码相同,可以竖着一列一列抄写同一个数字。几位幼儿很快就明白并完成至少1页填空的补全)

18号:第1次的学习结果

学号

第1次

第2次

18号

12号

经过第二次的手机号抄写练习,26位幼儿都初步知道了填空的内容是什么。但是幼儿书写速度有快慢(练习频率有关),因此7位幼儿并没有完全写完两面的所有内容。

感悟:

  1. 我班幼儿对家长的手机号码普遍比较陌生。需要家园配合,进行号码背诵指导。

  1. 部分幼儿能够背诵家长的手机号码,但还不能将“语音”与“数”进行有效对应(背的很快)

3.是否有手机号的经验对学习结果有影响。

(1)能背诵号码的孩子知道这些数字的用途(手机号),在完成“这份学具“时的速度快,由于会填空,所以他们不乐意再进行描字。

(2)对11个数字感到陌生的孩子,无法填空,只能听从教师指令,把已有的灰色数字进行描红(正面加反面的都描红)。

4.辐射推广:

2023年3月22日开展教学活动时,其他班级老师进教室检查自然角。中B班S老师看到孩子们在学习,对描摹数字的学具感兴趣,提出也需要这种数字字帖。

因为前期我用uibot批量提取了我园所有班级幼儿的手机号码,所以很快就能把他们班级的手机号贴到EXCEL,用Python代码批量了29份手机号码(5行描红+2行填空,因为在我班级教学后,感觉还是描红多一点比较适合中班)

2022年3月23日,这位老师用白纸打印了全部号码学具,并当面表示感谢。

“滴个写家长手机号的(学具)勿要特灵光哦,每个人塞勿一样,老有用场额!”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿夏reasonsummer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值