【教学类-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将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专