佛山行业网站设计,推广方式方法,诸城网站建设诸城,php网站做安卓客户端背景需求#xff1a;
0-5加法、减法是大班孩子选择较多的题型#xff0c;因为只有21题#xff0c;做题速度快#xff0c;完成后#xff0c;#xff0c;他们会问#xff1a;“后面的空白格子做什么” “可以画画#xff0c;自己出题目” 但是大部分孩子都不会自己出题目…背景需求
0-5加法、减法是大班孩子选择较多的题型因为只有21题做题速度快完成后他们会问“后面的空白格子做什么” “可以画画自己出题目” 但是大部分孩子都不会自己出题目会写题目的孩子对于写满34个格子感到“任务艰巨”女孩还能尝试画点图案男孩则完全没有兴趣在长方格里绘画。
最后他们只能都借口“我回家再做题”就开始折纸了。玩纸飞机容易“安全危险”“干扰其他同学” 任务思考
当X-Y以0-5加法21题为例总数小于55格子会出现大量空格如何把这些格子也填满数字X-Y之间的随机数。
代码展示 X-Y 之间的所有减法题 补足55个格子
如果0-5只有21需要补足55-21个格子里面的所有题目
时间2023年12月15日 21:46
作者阿夏
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
import os,timeimport 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 qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor# 第一步制作不重复所有“”、不重复所有减法# 不重复的数字题
numint(input(打印几份必须是双数\n))
gz55
classroominput(班级输入中、大\n)
size20
height112
weight15
sum1int(input(X-Y以内的“” 最小数字X\n))
sum2int(input(X-Y以内的“” 最大数字Y\n))# 5以内“”题共21题
P[]
for a in range(0,sum21): # 起始数字就是10就是排除掉0-10之间的数字for b in range(0,sum21): # 起始数字为0if sum1absum21: # print({}{}.format(a,b))P.append({}{}.format(a,b))if sum1basum21: # print({}{}.format(a,b))P.append({}{}.format(b,a))else:passP list(set(P)) # 排除重复但随机打乱
P.sort() # 小到大排序
print(P)# [00, 01, 02, 03, 04, 05, 10, 11, 12, 13, 14, 20, 21, 22, 23, 30, 31, 32, 40, 41, 50]# “”题生成都是按小到大排列的不需要sort排序
print({}-{}之间的加法题共有 {} 题.format(sum1,sum,len(P)) ) # 21# 制作单元格
d[0001,0002]
bg[]
for x in range(1,height1): for y in range(0,weight1): s1{}{}.format(%02d%x,%02d%y) # 数字加空格bg.append(s1)
print(bg)
print(len(bg))bg.insert(0,d[1])
bg.insert(0,d[0])
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]# 第一行的班级和项目
# P.clear()
c{}.format(classroom)if len(P)gz:title {}-{}“”正序共{}抽{}题.format(sum1,sum2,len(P),len(P))
else:title {}-{}“”正序共{}抽{}题.format(sum1,sum2,len(P),gz)# 新建一个”装N份word和PDF“的临时文件夹
imagePath1rC:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Word
if not os.path.exists(imagePath1): # 判断存放图片的文件夹是否存在os.makedirs(imagePath1) # 若图片文件夹不存在就创建nint(num/2)
for z in range(0,n): #多少份 # 标题说明# 新建worddoc Document(rC:\Users\jg2yXRZ\OneDrive\桌面\加减法\01加减法模板一页两份加减法大量题目.docx) for j in range(2):# 如果题目总数小于55,就提取# 例如0-5 21题P的第一部分是21题全部第2部分就21题里面的随机抽屉第3部分13也是随机抽取可能会重复PP[]PPP[]PP.clear() # P.clear()if len(P)gz:for l in P : # 先写入固定的21题PP.append(l)print(PP)print(第1组长度{}.format(len(PP)))# 0-0只有1题所以批量55次for e in range(55):wrandom.sample(P,len(P)) # 从21题随机抽取不重复21for u in w: # 遍历提取PP.append(u) # 添加到PPPPPP[:gz] # 提取前55个print(把21题批量55次后总数量 实际提取{}格{}.format(len(PP),len(PPP)))print(PPP)else:PPPPPPP.insert(0,title)PPP.insert(0,classroom)print(PPP)print(len(PPP))# # 房间模板第一个表格要写入的门牌号列表 table doc.tables[j] # 表0表2 写标题用的# 标题写入3、5单元格 for t in range(0,len(bg)): # 0-5是最下面一行用来写卡片数字ppint(bg[t][0:2]) # qqint(bg[t][2:4])kstr(PPP[t]) # 提取list图案列表里面每个图形 t索引数字print(pp,qq,k)# 图案符号的字体、大小参数runtable.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(150,150,150) #数字小颜色深0-255run.font.color.rgb RGBColor(150,150,150) #数字小颜色深0-255run.boldTrue# 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.LEFT #居中
# doc.save(rC:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Word\{}.docx.format(%02d%(z1)))#保存为XX学号的电话号码word from docx2pdf import convert# docx 文件另存为PDF文件inputFile rC:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word/{}.docx.format(%02d%(z1))# 要转换的文件已存在outputFile rC:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word/{}.pdf.format(%02d%(z1)) # 要生成的文件不存在# 先创建 不存在的 文件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 PdfMerger
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 PdfMerger()
for pdf in pdf_lst:print(pdf)file_merger.append(pdf)if len(P) gz:file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/打印合集01“”一页两份 撑满格子{}题{}-{}之间正逆正序“”共{}题抽{}题({}共{}人打印{}张).pdf .format(gz,%02d%sum1,%02d%sum2,%03d%len(P),%02d%len(P),c,num,n))
else:file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/打印合集01“”一页两份 撑满格子{}题{}-{}之间正逆正序“”共{}题抽55题({}共{}人打印{}张).pdf.format(gz,%02d%sum1,%02d%sum2,%03d%len(P),c,num,n))file_merger.close()
# doc.Close()# # print(----------第5步删除临时文件夹------------)
import shutil
shutil.rmtree(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word) #递归删除文件夹即删除非空文件夹 0-9以内的题目数都小于等于55所以需要反复提取一个基础不重复的数据 重点题型 0-5加法 补全55格子 重点题型 0-10加法 66抽55题 这样就方便孩子们多做一会儿0-5的题目了。巩固计算。