【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题(以0-5,0-10,0-15,0-20为例)(摸底测试)

背景需求

1、长期做手工制作,常规管理难以控制

优势:

1、幼儿创作热情高涨,发明的新玩具多

2、互助观摩,进一步模仿、创作作品

3、互动游戏兴趣浓厚,语言交流踊跃,

劣势:

1、纸条碎片多,环境清理慢,小碎纸不容易清理干净。

2、工具(胶水盖、剪刀、记号笔盖)掉在地上,幼儿看不到,没有及时清理(他们都忙着炫耀自己的作品)

3、用纸类学具作品进行交流的过程中,幼儿声音响亮、情绪兴奋,室内噪音大。

4、顽皮男孩容易在教室里追逐打闹,集体空间有限,容易出现安全事故。

2、提供纯书写绘画,少使用胶水剪刀制作的学具

基于以上课堂客观情况,我感觉虽然他们手工制作能力、表达表现能力增强,但如果长此以往,容易出现情绪亢奋、安全隐患(情绪难以自控),所以有必要做一些相对安全的数、美术活动。

3、大班幼儿早已开始加减法练习

安全又能“磨时间”的学具,第一个想到就是X以内加减法

虽然不鼓励提前进行小学化教育,但实际上小学授课速度极快,没有书写、加减法基础,适应阶段会有压力。因此,家长普遍早就对中大班孩子进行数字书写、加减计算的练习活动。

从以往的X以内加减法题目联系中,我感觉”5内加法“就是一个标准版本(21题),可以用雪花片实物进行点数计算。

一些能力超强、练的太多的孩子吵着要20-100之间的加减法。所以高难度的也可以生成几张。

……

因此,我想批量做一些单元格式的X以内计算题

1、包含加法55题、减法55题、加减混合55题

2、5以内、10以内、15以内、20以内(先设计4款)

3、幼儿可以自选、做的快的孩子再选一张。

材料准备:

WORD版(加法、减法、加减混合 都用这个通用模板

1、上一次用的是5*5格子版本,数字比较大,专做5以内21题加法、减法用。有的孩子做题速度块,到处晃悠。

2、这一次做11*5格(1CM高),题量多一点,书写空间小

通用模板

三款代码的位置

(一)1-100以内加法

'''
9以内加法一页两份(共55格)不超过100
时间:2023年11月18日 21:46
作者:阿夏
'''


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 qn


from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

# 第一步:制作不重复所有加法、不重复所有减法

# 不重复的数字题
num=int(input('打印几份(必须是双数)\n'))
size=20
height1=12
weight1=5
sum1=int(input('X以内的加法(1-100之间任意数字)9以内题目数量<55,10-100的题目>55,抽取55题\n'))

classroom=input('班级(输入中、大)\n')

# 3以内:10
# 4以内:15
# 5以内:21
# 都小于25格子

for  sum in [sum1]:
# 5以内加法题共21题
    P=[]
    for a in range(sum+1):
        for b in range(sum+1):
            if 0<=a+b<sum+1:         
                # print('{}+{}='.format(a,b))
                P.append('{}+{}='.format(a,b))
            else:
                pass
    print(P)
        # ['0+0=', '0+1=', '0+2=', '0+3=', '0+4=', '0+5=', '1+0=', '1+1=', '1+2=', '1+3=', '1+4=', '2+0=', '2+1=', '2+2=', '2+3=', '3+0=', '3+1=', '3+2=', '4+0=', '4+1=', '5+0=']
        # 加法题生成都是按小到大排列的,不需要sort排序
    print(len(P))    # 21


    # 第一行的班级和项目
    D=[]
    c='{}'.format(classroom)

    if sum <=9:
        title='≤{}非重加法共{}抽{}题'.format(sum,len(P),len(P))
    if sum >9:
        title='≤{}非重加法共{}抽55题'.format(sum,len(P))
    d=['0001','0002']
    # 表格0 表格2的 03 05单元格里写入标题信息c
    D.append(c)
    D.append(title)
    print(D)

    # 制作"单元格"
    bgall=[]
    for bb in d:
        bgall.append(bb)

    for x in range(1,height1):   
        for y in range(0,weight1):            
            s1='{}{}'.format('%02d'%x,'%02d'%y)       # 数字加空格
            bgall.append(s1)   
    print(bgall)        
    print(len(bgall))
    
    # 不同情况下的单元格数量
    if  sum<=9:
        bg=bgall[0:2+len(P)]
        print(bg)
        print(len(bg))
    if sum>9:
        bg=bgall[0:len(bgall)]
        print(bg)
        print(len(bg))

    # ['0003', '0005', '0100', '0101', '0102', '0103', '0104', '0200', '0201', '0202', '0203', '0204', '0300', '0301', '0302', '0303', '0304', '0400', '0401', '0402', '0403', '0404', '0500']




    # 新建一个”装N份word和PDF“的临时文件夹
    imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Word'
    if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在
        os.makedirs(imagePath1)  # 若图片文件夹不存在就创建

    n=int(num/2)
    for z in range(0,n):   #多少份  
        # 标题说明
        
            # 新建word
        doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\01加减法模板一页两份(加减法,大量题目).docx')  
        for j in range(2):

            if sum <=9:
            # D=[]
            # 小于9的题目,要计算一共有几题,写入等量的单元格内, 
                C=random.sample(P,len(P))  
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

            if sum >9:
            # D=[]
            # 大于9的题目,只要抽取55题,多余的写不下, 
                C=random.sample(P,len(bgall))              # 55格
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

        
    #       # 房间模板(第一个表格)要写入的门牌号列表 
            table = doc.tables[j]          # 表0,表2 写标题用的
            # 标题写入3、5单元格  
            for t in range(0,len(bg)):             # 0-5是最下面一行,用来写卡片数字
                pp=int(bg[t][0:2])     # 
                qq=int(bg[t][2:4])
                k=str(D[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(46)  #输入字体大小默认30号 换行(一页一份大卡片
                run.font.size = Pt(size) #是否加粗
                run.font.color.rgb = RGBColor(200,200,200) #数字小,颜色深0-255
                run.bold=True
                # 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.LEFT #居中   
    #    
        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)

    if sum <=9:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)01加法(一页两份 )55题{}以内加法共{}题抽{}题({}共{}人打印{}张).pdf" .format('%02d'%sum,'%03d'%len(P),'%02d'%len(P),c,num,n))
    if sum >9:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)01加法(一页两份 )55题{}以内加法共{}题抽{}题({}共{}人打印{}张).pdf".format('%02d'%sum,'%03d'%len(P),'%02d'%(len(bgall)-2),c,num,n))

    file_merger.close()
    # doc.Close()

    # # print('----------第5步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word') #递归删除文件夹,即:删除非空文件夹





            
            

加法部分生成题目的代码

输入的数字有限定

1、0-9以内加法的不重复题目总数小于55

0以内 1题

1以内 3题

2以内 6题

3以内 10题

4以内 15题

5以内 21题

6以内 28题

7以内 36题

8以内 45题

9以内 55题=55题

------------------------------------------------------------------------------------

10以内 66题>55题

所以9以内要抽取45个单元格+2个标题的格子。

10以上要从大量题目中只抽取55个。 

(1)WORd第一行的标题要不同

(2)抽取的题目适量要不同

(3)抽取的单元格数量要不同

(4)PDF的文件名不同

终端输入

(1)5以内(实际21题,抽取21题)

(2)10以内(实际66题,抽取55题)

---------------------------------------------------------------------------------------------------------------------------------

(二)1-100以内减法

'''
X以内减法一页两份(共55格)不超过100
时间:2023年11月18日 21:46
作者:阿夏
'''


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 qn


from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

# 第一步:制作不重复所有减法、不重复所有减法

# 不重复的数字题
num=int(input('打印几份(输入双数)\n'))
size=20
height1=12
weight1=5
sum1=int(input('X以内的减法(1-100之间任意数字)9以内题目数量<55,10-100的题目>55,抽取55题\n'))
classroom=input('班级(输入中 大)\n')

# 3以内:10
# 4以内:15
# 5以内:21
# 都小于25格子

for  sum in [sum1]:
    # 5以内减法题共21题
    S=[]
    for a in range(sum+1):
        for b in range(sum+1):
            if 0<=a-b<sum+1:              
                # print('{}+{}='.format(a,b))
                S.append('{}-{}='.format(a,b))
            if 0<=b-a<sum+1:  
                S.append('{}-{}='.format(b,a))         
    # print(S)
    S=list(set(S))    # 去除重复
    S.sort()     # 排序
    print(S)    
    # ['0-0=', '1-0=', '1-1=', '2-0=', '2-1=', '2-2=', '3-0=', '3-1=', '3-2=', '3-3=', '4-0=', '4-1=', '4-2=', '4-3=', '4-4=', '5-0=', '5-1=', '5-2=', '5-3=', '5-4=', '5-5=']
    print(len(S))     # 21
    # ['0+0=', '0+1=', '0+2=', '0+3=', '0+4=', '0+5=', '1+0=', '1+1=', '1+2=', '1+3=', '1+4=', '2+0=', '2+1=', '2+2=', '2+3=', '3+0=', '3+1=', '3+2=', '4+0=', '4+1=', '5+0=']


    # 第一行的班级和项目
    D=[]
    c='{}'.format(classroom)

    if sum <=9:
        title='≤{}非重减法共{}抽{}题'.format(sum,len(S),len(S))
    if sum >9:
        title='≤{}非重减法共{}抽55题'.format(sum,len(S))
    d=['0001','0002']
    # 表格0 表格2的 03 05单元格里写入标题信息c
    D.append(c)
    D.append(title)
    print(D)

    # 制作"单元格"
    bgall=[]
    for bb in d:
        bgall.append(bb)

    for x in range(1,height1):   
        for y in range(0,weight1):            
            s1='{}{}'.format('%02d'%x,'%02d'%y)       # 数字加空格
            bgall.append(s1)   
    print(bgall)        
    print(len(bgall))
    if  sum<=9:
        bg=bgall[0:2+len(S)]
        print(bg)
        print(len(bg))
    if sum>9:
        bg=bgall[0:len(bgall)]
        print(bg)
        print(len(bg))

    # ['0003', '0005', '0100', '0101', '0102', '0103', '0104', '0200', '0201', '0202', '0203', '0204', '0300', '0301', '0302', '0303', '0304', '0400', '0401', '0402', '0403', '0404', '0500']




    # 新建一个”装N份word和PDF“的临时文件夹
    imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Word'
    if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在
        os.makedirs(imagePath1)  # 若图片文件夹不存在就创建

    n=int(num/2)
    for z in range(0,n):   #多少份  
        # 标题说明
        
            # 新建word
        doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\01加减法模板一页两份(加减法,大量题目).docx')  
        for j in range(2):

            if sum <=9:
            # D=[]
            # 索引数字 随机抽取21个数字 
                C=random.sample(S,len(S))  
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

            if sum >9:
            # D=[]
            # 索引数字 随机抽取21个数字 
                C=random.sample(S,len(bgall))              # 55格
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

        
    #       # 房间模板(第一个表格)要写入的门牌号列表 
            table = doc.tables[j]          # 表0,表2 写标题用的
            # 标题写入3、5单元格  
            for t in range(0,len(bg)):             # 0-5是最下面一行,用来写卡片数字
                pp=int(bg[t][0:2])     # 
                qq=int(bg[t][2:4])
                k=str(D[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(46)  #输入字体大小默认30号 换行(一页一份大卡片
                run.font.size = Pt(size) #是否加粗
                run.font.color.rgb = RGBColor(200,200,200) #数字小,颜色深0-255
                run.bold=True
                # 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.LEFT #居中   
    #    
        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)

    if sum <=9:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)01减法(一页两份 )55题{}以内减法共{}题抽{}题({}班共{}人打印{}张).pdf".format('%02d'%sum,'%03d'%len(S),'%02d'%len(S),c,num,n))
    if sum >9:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)01减法(一页两份 )55题{}以内减法共{}题抽{}题({}班共{}人打印{}张).pdf".format('%02d'%sum,'%03d'%len(S),'%02d'%(len(bgall)-2),c,num,n))


    file_merger.close()
    # doc.Close()

    # # print('----------第5步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word') #递归删除文件夹,即:删除非空文件夹





    
    

输入的数字有限定

1、0-9以内减法的不重复题目总数小于55(与加法相同)

0以内 1题

1以内 3题

2以内 6题

3以内 10题

4以内 15题

5以内 21题

6以内 28题

7以内 36题

8以内 45题

9以内 55题=55题

------------------------------------------------------------------------------------

10以内 66题>55题

所以9以内要抽取45个单元格+2个标题的格子。

10以上要从大量题目中只抽取55个。 

减法的代码与加法形同,只有减法遍历部分不同,其他都一样。

 终端输入

(1)5以内(实际21题,抽取21题)

(2)10以内(实际66题,抽取55题)

---------------------------------------------------------------------------------------------------------------------------------

(三)1-100以内加减混合题

1、加法题加减法题总数<=55,所有加法题减法题都写入55格子内(有多余空格)

2、加法题加减法题总数>55,所有加法题减法题的列表里面随机抽取55题(可能加法多,可能减法多,不确定)

'''
X以内 加减混合法一页两份(共55格)不超过100
时间:2023年11月18日 21:46
作者:阿夏
'''


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 qn


from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

# 第一步:制作不重复所有减法、不重复所有减法

# 不重复的数字题
num=int(input('打印几份(输入双数)\n'))
size=20
height1=12
weight1=5
# sum=int(input('X以内的(1-6 6=42<55题7=56题》55)\n'))
classroom=input('班级(输入中 大)\n')

# 3以内:10
# 4以内:15
# 5以内:21
# 都小于25格子
for  sum in [5,10,15,20]:
    # 加法
    P=[]
    for a in range(sum+1):
        for b in range(sum+1):
            if 0<=a+b<sum+1:         
                # print('{}+{}='.format(a,b))
                P.append('{}+{}='.format(a,b))
            else:
                pass
    print(P)
        # ['0+0=', '0+1=', '0+2=', '0+3=', '0+4=', '0+5=', '1+0=', '1+1=', '1+2=', '1+3=', '1+4=', '2+0=', '2+1=', '2+2=', '2+3=', '3+0=', '3+1=', '3+2=', '4+0=', '4+1=', '5+0=']
        # 加法题生成都是按小到大排列的,不需要sort排序
    print(len(P))    # 21


    # 5以内减法题共21题
    S=[]
    for a in range(sum+1):
        for b in range(sum+1):
            if 0<=a-b<sum+1:              
                # print('{}+{}='.format(a,b))
                S.append('{}-{}='.format(a,b))
            if 0<=b-a<sum+1:  
                S.append('{}-{}='.format(b,a))         
    # print(S)
    S=list(set(S))    # 去除重复
    S.sort()     # 排序
    print(S)    
    # ['0-0=', '1-0=', '1-1=', '2-0=', '2-1=', '2-2=', '3-0=', '3-1=', '3-2=', '3-3=', '4-0=', '4-1=', '4-2=', '4-3=', '4-4=', '5-0=', '5-1=', '5-2=', '5-3=', '5-4=', '5-5=']
    print(len(S))     # 21
    # ['0+0=', '0+1=', '0+2=', '0+3=', '0+4=', '0+5=', '1+0=', '1+1=', '1+2=', '1+3=', '1+4=', '2+0=', '2+1=', '2+2=', '2+3=', '3+0=', '3+1=', '3+2=', '4+0=', '4+1=', '5+0=']

    # 加减混合列表
    ALL=[]
    for a1 in P:
        ALL.append(a1)
    for a2 in S:
        ALL.append(a2)
    print(ALL)


    # 第一行的班级和项目
    D=[]
    c='{}'.format(classroom)

    # 6以内的“加法+减法”总计题目数不超过55题,
    if sum <=6:
        title='≤{}非重加减法{}题抽{}'.format(sum,len(ALL),len(ALL))
    # 7以上的“加法+减法”总计题目数不超过55题,只要抽55题
    if sum >6:
        title='≤{}非重加减法{}题抽55'.format(sum,len(ALL))
    d=['0001','0002']
    # 表格0 表格2的 03 05单元格里写入标题信息c
    D.append(c)
    D.append(title)
    print(D)

    # 制作"单元格"
    bgall=[]
    for bb in d:
        bgall.append(bb)

    for x in range(1,height1):   
        for y in range(0,weight1):            
            s1='{}{}'.format('%02d'%x,'%02d'%y)       # 数字加空格
            bgall.append(s1)   
    print(bgall)        
    print(len(bgall))


    # bg=bgall
    if  sum<=6:
        bg=bgall[0:2+len(ALL)]
        # 小于55格,如只有21格
        print(bg)
        print(len(bg))
    if sum>6:
        bg=bgall[0:len(bgall)]
        # 大于55格,只取55格
        print(bg)
        print(len(bg))

    # ['0003', '0005', '0100', '0101', '0102', '0103', '0104', '0200', '0201', '0202', '0203', '0204', '0300', '0301', '0302', '0303', '0304', '0400', '0401', '0402', '0403', '0404', '0500']




    # 新建一个”装N份word和PDF“的临时文件夹
    imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Word'
    if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在
        os.makedirs(imagePath1)  # 若图片文件夹不存在就创建

    n=int(num/2)
    for z in range(0,n):   #多少份  
        # 标题说明
        
            # 新建word
        doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\01加减法模板一页两份(加减法,大量题目).docx')  
        for j in range(2):

            if sum <=6:
            # D=[]
            # 索引数字 随机抽取21个数字 
                C=random.sample(ALL,int(len(ALL)))              # 全抽,打乱,不重复
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

            if sum >6:
            # D=[]
            # 索引数字 随机抽取21个数字 
                C=random.sample(ALL,len(bgall))              # 55格
                for cc in C:
                    D.append(cc)
                print(D)
                print(len(D))

        
    #       # 房间模板(第一个表格)要写入的门牌号列表 
            table = doc.tables[j]          # 表0,表2 写标题用的
            # 标题写入3、5单元格  
            for t in range(0,len(bg)):             # 0-5是最下面一行,用来写卡片数字
                pp=int(bg[t][0:2])     # 
                qq=int(bg[t][2:4])
                k=str(D[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(46)  #输入字体大小默认30号 换行(一页一份大卡片
                run.font.size = Pt(size) #是否加粗
                run.font.color.rgb = RGBColor(200,200,200) #数字小,颜色深0-255
                run.bold=True
                # 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.LEFT #居中   
    #    
        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)

    if sum <=6:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)03加减法(一页两份 )55题{}以内加减混合法共{}题抽{}题({}共{}人打印{}张).pdf".format('%02d'%sum,'%03d'%len(ALL),'%02d'%len(ALL),c,num,n))
    if sum >6:
        file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)03加减法(一页两份 )55题{}以内加减混合法共{}题抽{}题({}共{}人打印{}张).pdf".format('%02d'%sum,'%03d'%len(ALL),'%02d'%(len(bgall)-2),c,num,n))

    file_merger.close()
    # doc.Close()

    # # print('----------第5步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word') #递归删除文件夹,即:删除非空文件夹





        
        

输入的数字有限定

1、0-6以内 加法+减法 合计题目总数小于55

0以内 1题  2题

1以内 3题  6题

2以内 6题  12题

3以内 10题  20题

4以内 15题  30

5以内 21题  42题

------------------------------------------------------------------------------------

6以内 28题  56题>55题

7以内 36题  72

所以5以内要抽取45个单元格+2个标题的格子。

6以上要从大量题目中只抽取55个。 

减法的代码与加法形同,只有减法遍历部分不同,其他都一样。

 终端输入

(1)5以内(实际21题,抽取21题)

(2)10以内(实际66题,抽取55题)

---------------------------------------------------------------------------------------------------------------------------------

教学过程:

时间:2023年11月24日 15:00-15:30

班级:大4

人数:22人

材料准备:

“选纸”

1、请5以内的孩子上台——大约4人

2、请20以内孩子——2人

3、其余自选(全加、全减、加减混合)

反思:

1、三位幼儿没有加减法经验,但非常渴望答题正确

2、其余幼儿都在答题,正确率相对很高

3、一些做题快的孩子主动提交作业,求关注、求表扬。答题慢、不会做的孩子,一般悄悄把作业放包里了“我回去再做”“我太累了,可以回家做吗”

经验:

1、一位男孩问:“为什么20以内加减法里面会有3+0”。他的意思是20以内加减法,应该有两位数,不要两个都是单数,排除一些简单的5以内、10以内题目。
改良:我批量的这套“X以内加法、减法、加减法”实际上是“0-X之间的加法、减法、加减法”。

2、一位男孩说:“我会加法、减法还有乘法!”他背诵起来:“就是11的1,12得2”。他的同桌男孩立刻回应,我会也会乘法!

改良:既然他们程度已经到了这里,没有新玩意,难以激发幼儿学习兴趣,也需要做一些“乘法”“除法”的代码

3、现阶段(大班上学期),大部分幼儿在5以内加法的水平(掰手指、口算),一些加减混合题,部分幼儿也是做成加法题的。

改良:可以多提供一些“5以内、10以内、15以内、20以内加法题”,混合题少一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿夏reasonsummer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值