【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题

背景需求

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、幼儿可以自选、做的快的孩子再选一张。

材料准备:

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第1张图片

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

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第2张图片

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

通用模板

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第3张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第4张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第5张图片【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第6张图片

三款代码的位置

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第7张图片

(一)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+b9:
        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') #递归删除文件夹,即:删除非空文件夹





            
            

加法部分生成题目的代码

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第8张图片

输入的数字有限定

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第一行的标题要不同

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第9张图片(2)抽取的题目适量要不同

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第10张图片

(3)抽取的单元格数量要不同【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第11张图片

(4)PDF的文件名不同

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第12张图片

终端输入

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第13张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第14张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第15张图片

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第16张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第17张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第18张图片

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

(二)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-b9:
        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个。 

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第19张图片

 终端输入

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第20张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第21张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第22张图片

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第23张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第24张图片【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第25张图片

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

(三)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+b6:
        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个。 

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第26张图片

 终端输入

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第27张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第28张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第29张图片

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

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第30张图片

【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第31张图片【教学类-06-06】20231118 (55格版)0-X以内加法、减法、加减混合题_第32张图片

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

由此可见,“X以内加法、减法、加减法”实际上是“0-X之间的加法、减法、加减法”。

你可能感兴趣的:(c#,开发语言)