【教学类-26-01】20230321 背诵家长电话号码-Python数字填空(中班 偏数学和社会)

本文主要是介绍【教学类-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位幼儿不理解。两个样本删除

  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日,这位老师用白纸打印了全部号码学具,并当面表示感谢。

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

这篇关于【教学类-26-01】20230321 背诵家长电话号码-Python数字填空(中班 偏数学和社会)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/191235

相关文章

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板