网站建设方案概念,深圳公司查询,网络营销平台的账号如何运营,重庆 机械有限公司 沙坪坝网站建设背景需求
在大四班里#xff0c;预测试55格“5以内、10以内、20以内的加法题、减法题、加减混合题”的“实用性”。
由于只打印一份20以内加法减法混合题。
“这套20以内的加减法最难”#xff0c;我询问谁会做#xff08;摸底幼儿的水平#xff09;
有两位男孩举手想挑…背景需求
在大四班里预测试55格“5以内、10以内、20以内的加法题、减法题、加减混合题”的“实用性”。
由于只打印一份20以内加法减法混合题。
“这套20以内的加减法最难”我询问谁会做摸底幼儿的水平
有两位男孩举手想挑战其中一位顽皮男孩之前就撒娇祈求要最难的题目我心软就同意给他让他试试了。
他选走了做了几题后他拿着纸问我“X老师你不是说这是20以内加减法吗为什么这里会有13的题目”
我一愣告诉他“20以内自然包含了3以内的题目。3以内题目对你来说不是很容易”
他不明所以但还是点点头走了。
我转眼一想理解他的意思“20以内不应该包含13这种5以内的简单题目应该至少有一个两位数的数字如105、124、”
幼儿需求
20以内加法排除掉10以内的加减法只提取10-20之间的加减法。
用代码先测试一下“X—X之间加法题”的数量 1.0版本中的“0-5以内加法”、“0-10以内加法”、“0-20以内加法” 起始数字5与0-20之间数字的题目数 起始数字10与0-20之间数字的题目数 关键数字测试后我发现一个现象
1、0-5、5-10、10-15的加法题目数量都是21题、0-10、10-20的加法题数量都是66
结论相隔5个数实际6个的数量是21题相隔10个数实际11个的数量是66题。
2、0-Y都是有题目数的X-Y会出现0题
结论需要在排除0题如if x0pass。也因此可以看到题目数数量难以确定不能用大于9、小于9作为判断单元格抽取数量的标准需要用lenP替代9.
3、项目标题从“X以内加减题共XX题抽XX”改成“X-Y之间“”共XX题抽XX” 第一款X-Y之间不重复加法题“”共XX题抽取XX题
A类只要正序如10-20之间会抽取100,101不会出现010110的内容 数量为66题抽取55题。 9以内“”一页两份共55格)不超过100
时间2023年11月14日 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))
classroominput(班级输入中、大\n)
size20
height112
weight15
sum1int(input(X-Y以内的“” 最小数字X\n))
sum2int(input(X-Y以内的“” 最大数字Y\n))for sum in [sum2]:
# 5以内“”题共21题P[]for a in range(sum1,sum21): # 起始数字就是10就是排除掉0-10之间的数字for b in range(sum21): # 起始数字为0if sum1absum21: # print({}{}.format(a,b))P.append({}{}.format(a,b))else:passprint(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[]c{}.format(classroom)if len(P) 55:title{}-{}“”共{}抽{}题.format(sum1,sum2,len(P),len(P))if len(P) 55:title{}-{}“”共{}抽55题.format(sum1,sum2,len(P))d[0001,0002]# 表格0 表格2的 03 05单元格里写入标题信息cD.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 len(P) 55:bgbgall[0:2len(P)]print(bg)print(len(bg))else:bgbgall[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“的临时文件夹imagePath1rC:\Users\jg2yXRZ\OneDrive\桌面\加减法\零时Wordif 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):if len(P) 55:# D[]# 小于9的题目要计算一共有几题写入等量的单元格内 Crandom.sample(P,len(P)) for cc in C:D.append(cc)print(D)print(len(D))else:# D[]# 大于9的题目只要抽取55题多余的写不下 Crandom.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是最下面一行用来写卡片数字ppint(bg[t][0:2]) # qqint(bg[t][2:4])kstr(D[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(200,200,200) #数字小颜色深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/125248205import osfrom PyPDF2 import PdfFileMergertarget_path C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Wordpdf_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 len(P) 55:file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/打印合集01“”一页两份 55题{}-{}之间“”共{}题抽{}题({}共{}人打印{}张).pdf .format(%02d%sum1,%02d%sum2,%03d%len(P),%02d%len(P),c,num,n))else:file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/打印合集01“”一页两份 55题{}-{}之间“”共{}题抽55题({}共{}人打印{}张).pdf.format(%02d%sum1,%02d%sum2,%03d%len(P),c,num,n))file_merger.close()# doc.Close()# # print(----------第5步删除临时文件夹------------) import shutilshutil.rmtree(C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word) #递归删除文件夹即删除非空文件夹
B类正序逆序都算如10-20以内会抽取100,101还会出现010110的内容数量会多—— 131题1010出现2次排除1次 66*2132-1131中抽取55题