企业网站建设的技术指标和经济指标,苏州市吴江区住房和城乡建设局网站,电商网站项目经验介绍,广东蕉岭县建设局网站作品展示-屋顶分合#xff08;0-9之间随机抽取7个不重复分合#xff09; 背景需求#xff1a;
大班幼儿学分合题#xff0c;通常区角里会设计一个“房屋分合”的样式 根据这种房屋样式#xff0c;设计0-9内的升序分合题模板
素材准备 WORD样式 代码展示#xff1a; 2-9…作品展示-屋顶分合0-9之间随机抽取7个不重复分合 背景需求
大班幼儿学分合题通常区角里会设计一个“房屋分合”的样式 根据这种房屋样式设计0-9内的升序分合题模板
素材准备 WORD样式 代码展示 2-9之间随机抽取7个数字-房屋分合题-合-空在下房屋
时间2023年12月02日 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))
tm7 # 只能抽取7题
# classroominput(班级输入中、大\n)
size20
# height1
# weight15
sum1int(input(X-Y以内的最小数字X(0-9\n))
sum2int(input(X-Y以内的最大数字Y0-9\n))print(-----------第1步 制作基础题型-----------)# 5以内“”题共21题
P[]
P1[]
LIST[]for l in range(sum1,sum21):P.clear()# Q.clear()for a in range(0,sum21): # 起始数字就是10就是排除掉0-10之间的数字for b in range(0,sum21): # 起始数字就是10就是排除掉0-10之间的数字if abl: P.append({}.format(a) )P.append({}.format(b) ) # P1.append({}{}{}.format(a,b,l) )# P1.append({}{}{}.format(b,a,l) ) else:passQ list(set(P)) # 排除重复但随机打乱Q.sort() # 小到大排序 # print(Q)LIST.append(Q)for x in LIST:print(x)# [000]
# [011, 101]
# [022, 112, 202]
# [033, 123, 213, 303]
# [044, 134, 224, 314, 404]
# [055, 145, 235, 325, 415, 505]
# [066, 156, 246, 336, 426, 516, 606]
# [077, 167, 257, 347, 437, 527, 617, 707]
# [088, 178, 268, 358, 448, 538, 628, 718, 808]
# [099, 189, 279, 369, 459, 549, 639, 729, 819, 909]# print(-----------第2步 单元格制作-----------)# 屋顶总数的坐标虽然居中但实际坐标也是10和左侧数字的坐标30、40)写在一起,
bgb[]
for y in range(0,14,2): for l in range(1,13): if l2: # 索引2第3行是“/\”的符号不要写入跳过passelse: s1{}{}.format(%02d%l,%02d%y) # 数字加空格bgb.append(s1)
print(bgb)
print(len(bgb))
# 77# 11个格子一组
bg[]
uint(len(bgb)/(tm)) #11个
for q in range(int(tm)):bg.append(bgb[q*u:q*uu])
print(bg)
print(len(bg))
# [[0100, 0300, 0400, 0500, 0600, 0700, 0800, 0900, 1000, 1100, 1200],
# [0102, 0302, 0402, 0502, 0602, 0702, 0802, 0902, 1002, 1102, 1202],
# [0104, 0304, 0404, 0504, 0604, 0704, 0804, 0904, 1004, 1104, 1204],
# [0106, 0306, 0406, 0506, 0606, 0706, 0806, 0906, 1006, 1106, 1206],
# [0108, 0308, 0408, 0508, # 0608, 0708, 0808, 0908, 1008, 1108, 1208],
# [0110, 0310, 0410, 0510, 0610, 0710, 0810, 0910, 1010, 1110, 1210],
# [0112, 0312, 0412, 0512, 0612, 0712, 0812, 0912, 1012, 1112, 1212]]# 新建一个”装N份word和PDF“的临时文件夹
imagePath1rC:\Users\jg2yXRZ\OneDrive\桌面\分合题\零时Word
if not os.path.exists(imagePath1): # 判断存放图片的文件夹是否存在os.makedirs(imagePath1) # 若图片文件夹不存在就创建print(-----------第3步 随机抽取题目,考虑格子的数量确认坐标重新提取格子-----------)
# D[]# nint(num/2)
for z in range(0,int(num/2)): #多少份 # 新建worddoc Document(rC:\Users\jg2yXRZ\OneDrive\桌面\分合题\04分合-分-下-房屋.docx) # .clear()for j in range(2):table doc.tables[j] # 表0表2 写标题用的# D[]# 小于9的题目要计算一共有几题写入等量的单元格内 # for xx in A :# D.append(xx)# # # 第一行的班级和项目title{}-{}抽取{}题 房屋分合 升序.format(sum1,sum2,tm)d0004Crandom.sample(LIST,tm) print(随机抽取[[],[]]----{}.format(C))# 随机抽了9、3、7、8、2、6、1 一共7个数字的所有题目# [[099, 189, 279, 369, 459, 549, 639, 729, 819, 909], # [033, 123, 213, 303],# [077, 167, 257, 347, 437, 527, 617, 707], # [088, 178, 268, 358, 448, 538, 628, 718, 808], # [022, 112, 202],# [066, 156, 246, 336, 426, 516, 606], # [011, 101]]# 提取7题每题里面屋顶总数sl[]for e in range(int(len(C))):fint(len(C[e])) # 提取7题每题里面屋顶总数 如果体量是5题数字就是4sl.append(f)print(提取7题每题里面数量{}.format(sl))# 7题每一题里面包含的数量 做少1题0最多10题9# [10, 4, 7, 8, 9, 3, 1]# 提取随机抽数后的每题的等量坐标格子bgall[]# 提取等量的坐标# 屋顶数量数量-1for s in range(len(sl)): # 7个for h in bg[s][:int(sl[s]1)]:bgall.append(h) # 添加全部坐标列表bg的第一组列表里面所有题目的0-X个坐标,因为包含了屋顶坐标所以坐标组还要加1bgall.insert(0,d) # 在0第一个位置插入标题的坐标print(提取坐标总量{}.format(bgall))print(len(bgall))# 提取要输入格子的题目数字 一个总数 X个01234K[]# 屋顶数量数量-1for u in range(len(sl)): # 7个# u.append(int(sl-1)) # 屋顶写入的数字K.append(str(sl[u]-1)) # 写入屋顶总数,需要减去1for g in C[u]: # 单个元素添加K.append(g) # 添加全部题目列表C的第一组列表里面所有题目的0的数字这里都是1位数所以提取0 K.insert(0,title) # 在0第一个位置插入标题的文字print(K)print(len(K))# 标题写入3、5单元格 for t in range(0,len(bgall)): # 0-5是最下面一行用来写卡片数字ppint(bgall[t][0:2]) # qqint(bgall[t][2:4])kK[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(25) #是否加粗# run.font.color.rgb RGBColor(150,150,150) #数字小颜色深0-255run.font.color.rgb RGBColor(100,100,100) #数字小颜色深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.CENTER #居中 # 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 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/桌面/分合题/打印合集01“”一页两份 {}-{}之间分合屋顶抽{}题 右空({}人打印{}张).pdf .format(%02d%sum1,%02d%sum2,tm,num,int(num/2)))file_merger.close()
# doc.Close()# # print(----------第5步删除临时文件夹------------)
import shutil
shutil.rmtree(C:/Users/jg2yXRZ/OneDrive/桌面/分合题/零时Word) #递归删除文件夹即删除非空文件夹终端输入 左侧列从小到大排序0-Y 结题思路
1、生成0-9之间的所有加法题、去重、排序
2、把所有的可能写入数值得坐标都写出来并做成11个一组
3、从10组加减法题目中随机抽取7组列表计算T每个列表的长度题目数量 4、确定需要写入的坐标的范围、确定需要写入数据的内容
5、写入Word 存在问题
1、模板默认右侧列全部有下划线最好左侧列有数字右侧列有下划线左侧没有数字右侧就是空白 解决思路1——为啥一定要下划线呢既然周围已经包裹了黑色方格线直接删掉下划线不就行了 2、屋顶数字默认与左侧列的X相同如果我需要左侧列有数字左侧列空值就需要写屋顶单元格与右侧单元格的组合代码。
本代码无法实现左右侧面空格的通用模板。
后续在研究……【教学类-06-12】20231202 0-9数字分合-房屋样式-下右空-升序 文章转载自: http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn http://www.morning.rnnwd.cn.gov.cn.rnnwd.cn http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.blzrj.cn.gov.cn.blzrj.cn http://www.morning.skrcn.cn.gov.cn.skrcn.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn http://www.morning.gynlc.cn.gov.cn.gynlc.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.glbnc.cn.gov.cn.glbnc.cn http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.nfyc.cn.gov.cn.nfyc.cn http://www.morning.lgtzd.cn.gov.cn.lgtzd.cn http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn http://www.morning.wtnwf.cn.gov.cn.wtnwf.cn http://www.morning.qmkyp.cn.gov.cn.qmkyp.cn http://www.morning.nykzl.cn.gov.cn.nykzl.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.drndl.cn.gov.cn.drndl.cn http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.lyldhg.cn.gov.cn.lyldhg.cn http://www.morning.nzlqt.cn.gov.cn.nzlqt.cn http://www.morning.syynx.cn.gov.cn.syynx.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.jrwbl.cn.gov.cn.jrwbl.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.pyzt.cn.gov.cn.pyzt.cn http://www.morning.dfckx.cn.gov.cn.dfckx.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.tsyny.cn.gov.cn.tsyny.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.qineryuyin.com.gov.cn.qineryuyin.com http://www.morning.khclr.cn.gov.cn.khclr.cn http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.ydrml.cn.gov.cn.ydrml.cn http://www.morning.pprxs.cn.gov.cn.pprxs.cn http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.grqlc.cn.gov.cn.grqlc.cn http://www.morning.xknmn.cn.gov.cn.xknmn.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.wcghr.cn.gov.cn.wcghr.cn http://www.morning.poapal.com.gov.cn.poapal.com http://www.morning.lywpd.cn.gov.cn.lywpd.cn http://www.morning.fnczn.cn.gov.cn.fnczn.cn http://www.morning.gtbjf.cn.gov.cn.gtbjf.cn http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn http://www.morning.ydflc.cn.gov.cn.ydflc.cn http://www.morning.rqgjr.cn.gov.cn.rqgjr.cn http://www.morning.hxcuvg.cn.gov.cn.hxcuvg.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.0small.cn.gov.cn.0small.cn http://www.morning.kwqqs.cn.gov.cn.kwqqs.cn http://www.morning.rnpt.cn.gov.cn.rnpt.cn http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn http://www.morning.wfwqr.cn.gov.cn.wfwqr.cn http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.pzrnf.cn.gov.cn.pzrnf.cn http://www.morning.rdxnt.cn.gov.cn.rdxnt.cn http://www.morning.qckwj.cn.gov.cn.qckwj.cn http://www.morning.xcszl.cn.gov.cn.xcszl.cn http://www.morning.wpkr.cn.gov.cn.wpkr.cn http://www.morning.lhxrn.cn.gov.cn.lhxrn.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.pqsys.cn.gov.cn.pqsys.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn