【教学类-45-01】X-Y之间的三连加题(a+b+c=)

作品展示:

背景需求:

我常去的大4班孩子们基本都适应了0-5之间的加法题,做题速度极快。

为了增加“花样”,吸引幼儿参与,修改参数,从二连加1+2=变为三连加1+1+1=。

素材准备:

代码重点

代码展示

'''
X-Y 之间的3连加(如1+2+2=5)
时间:2024年1月7日 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# 第一步:制作不重复所有“+-”、不重复所有减法# 不重复的数字题
num=int(input('打印几份(必须是双数)\n'))
classroom=input('班级(输入中、大)\n')
size=20
height1=12
weight1=4
gz=(height1-1)*weight1
sum1=int(input('X-Y以内的“+-” 最小数字X\n'))
sum2=int(input('X-Y以内的“+-” 最大数字Y\n'))for  sum in [sum2+1]:
# 5以内“+-”题共21题P=[]for a in range(0,sum2+1):     # 起始数字就是10,就是排除掉0-10之间的数字for b in range(0,sum2+1):      # 起始数字为0,for c in range(0,sum2+1):     # 起始数字就是10,就是排除掉0-10之间的数字if sum1<=a+b+c<sum2+1 or sum1<=a+c+b<sum2+1 or sum1<=b+a+c<sum2+1 or \sum1<=b+c+a<sum2+1 or sum1<=c+a+b<sum2+1 or sum1<=c+b+a<sum2+1 :         # print('{}+{}='.format(a,b))P.append('{}+{}+{}='.format(a,b,c))P.append('{}+{}+{}='.format(a,c,b))P.append('{}+{}+{}='.format(b,a,c))P.append('{}+{}+{}='.format(b,c,a))P.append('{}+{}+{}='.format(c,a,b))P.append('{}+{}+{}='.format(c,b,a))# 0-5 三连加 56道# 0-10 三连加 286道else:passP =list(set(P))    # 排除重复,但随机打乱P.sort()    # 小到大排序# P=P[1:]# 不要0+0+0print(P)# print(len(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('{}-{}之间的三连加题共有  {}  题'.format(sum1,sum2,len(P)) )   # 21# 第一行的班级和项目A=[]c='{}'.format(classroom)if len(P) <=gz:title='{}-{}“3++”{}抽{}'.format(sum1,sum2,len(P),len(P))if len(P) >gz:title='{}-{}“3++”{}抽{}'.format(sum1,sum2,len(P),gz)d=['0001','0002']# 表格0 表格2的 03 05单元格里写入标题信息cA.append(c)A.append(title)print(A)    # 制作"单元格"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) <=gz:bg=bgall[0:2+len(P)]print(bg)print(len(bg))else: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)  # 若图片文件夹不存在就创建D=[]n=int(num/2)for z in range(0,n):   #多少份  # 标题说明# 新建worddoc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\加减法\05三连加减一页两份.docx')  for j in range(2):D.clear()if len(P) <=gz:# D=[]# 小于9的题目,要计算一共有几题,写入等量的单元格内, for xx in A :D.append(xx)C=random.sample(P,len(P))  for cc in C:D.append(cc)print(D)print(len(D))else:# D=[]# 大于9的题目,只要抽取55题,多余的写不下,for xx in A :D.append(xx) 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(150,150,150) #数字小,颜色深0-255run.font.color.rgb = RGBColor(150,150,150) #数字小,颜色深0-255run.bold=True# 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(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 osfrom PyPDF2 import PdfMergertarget_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/桌面/加减法/(打印合集)06一页两份 {}题{}-{}之间三连加“3++”共{}题抽{}题({}共{}人打印{}张).pdf" .format(gz,'%02d'%sum1,'%02d'%sum2,'%03d'%len(P),'%02d'%len(P),c,num,n))else:file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/加减法/(打印合集)06一页两份 {}题{}-{}之间三连加“3++”共{}题抽{}题({}共{}人打印{}张).pdf".format(gz,'%02d'%sum1,'%02d'%sum2,'%03d'%len(P),'%02d'%gz,c,num,n))file_merger.close()# doc.Close()# # print('----------第5步:删除临时文件夹------------')    import shutilshutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/加减法/零时Word') #递归删除文件夹,即:删除非空文件夹

终端输入

结果展示:

再测试0-10

(0+0+0=后面是0+0+10的问题,暂时不调整)

感悟:

1、三连加已经需要6组if,如果4连加12组if,写起来很多,要用list制作了。

2、因为0-5三连加数量56超过已有44格子,所以这里不考虑 多余空格补充题目的代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

增长中台建设与第三方平台调研

增长中台建设与第三方平台调研 前言一、增长策略 1.1 增长算法1.2 增长算法主要内容汇总1.3 增长策略参考材料二、增长中台建设 2.1 增长中台2.2 建设参考材料三、第三方增长中台 3.1 创量3.2 引力引擎3.3 增长参谋 adSpark3.4 买量小飞机&#xff08;舜飞科技&#xff09;3.5 …

Android studio ViewPager2 底部圆点指示器应用设计

一、activity_main.xml布局文件: <androidx.viewpager2.widget.ViewPager2android:id="@+id/viewpager2"android:layout_width="403dp"android:layout_height="442dp"app:layout_constraintEnd_toEndOf="parent"app:layout_const…

python编程从入门到实践(2)操作列表

3.4 列表-list-切片操作 numlist[1,2,3,4,5,6,7,8,9] numlist[::-1] #######运行结果######[9, 8, 7, 6, 5, 4, 3, 2, 1]numlist[1,2,3,4,5,6,7,8,9] numlist[::2]#######运行结果######[1, 3, 5, 7, 9]7.列表–list-常用操作符 list1[123,456] list2[456,789] list1>list2…

如何使用 CMakeLists.txt 在 CMake 项目中生成一个可执行程序

文章目录 main.cppCMakeLists.txt创建一个构建目录运行 CMake编译项目总结 main.cpp #include <iostream> /*** 代码作者&#xff1a;小秋SLAM入门实战* 开发环境&#xff1a;Ubuntu 16.04* 运行依赖&#xff1a;C 11*/ int main(int argc, char** argv){std::cout<&…

MySQL视图索引执行计划相关十五道面试题分享

目录 一. 视图 1.1 含义 1.2 操作 创建视图 修改视图 删除视图 查看视图 二. 索引 2.1 什么是索引 2.2 为什么要使用索引 2.3 优点 2.4 缺点 2.5 何时不适用索引 2.6 索引何时失效 三. 执行计划 3.1 什么是执行计划 3.2 执行计划的作用 四. 面试题 表结构 …

HTML5+CSS3小实例:人物介绍卡片2.0

实例:人物介绍卡片2.0 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><…

【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

文章目录 一、计算机网络背景二、协议1.协议是什么2.为什么要有协议 三、网络协议1.为什么要进行协议分层2.OSI七层模型3.TCP/IP五层(或四层)模型 四、网络传输基本流程1.协议报头2.局域网3.数据包封装和分用4.网络传输流程图 五、网络中的地址管理1.认识IP地址2.认识MAC地址3.…

AI爆文变现:怼量也有技巧!如何提升你的创作收益

做AI爆文项目&#xff0c;赚小钱是没有问题的。 想要赚大钱&#xff0c;就是要做矩阵&#xff0c;怼量。 之前参加训练营的时候&#xff0c;也是要求怼量。 怼量&#xff0c;加高质量文章&#xff0c;让你的收益更高。 如何提升文章质量&#xff0c;减少AI味&#xff0c;AI…

提升技术,必看的8个开源库,都很通俗易懂

提升技术&#xff0c;必看的8个开源库&#xff0c;都很通俗易懂 随着工作年限越来越高&#xff0c;越来越觉得闭门造车是一种非常不好的习惯&#xff0c;还是得多看看别人是怎么写代码的&#xff0c;毕竟人外有人嘛&#xff0c;所以我觉得多看看开源库的源码&#xff0c;是一种…

线性规划基本原理与案例分析

线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。 什么叫做线性规划&#xff1f;一般来讲&#xff0c;目标函数和约束函数均是线性的叫做线性规划问题。线性规划必须满足以下三种基本性质 例1.1 某机床厂生产甲、乙两种机床&#xff0c;每台销售后的利润分别…

【RocketMQ每日一问】RocketMQ如何保证消息不丢失?

1.生产端 不要使用oneway方式发送&#xff0c;因为这种方式不会有返回结果设置重试次数发送失败添加回调对消息进行处理 2.broker端 开启同步刷盘flushDiskType SYNC_FLUSH &#xff0c;这样在刷盘失败的时候会返回SendStatus.FLUSH_DISK_TIMEOUT开启主从同步复制&#xff…

多线程基础知识点

1. 进程 一个正在执行中的程序就是一个进程&#xff0c;系统会为这个进程发配独立的【内存资源】。进程是程序的一次执行过程&#xff0c;它有自己独立的生命周期&#xff0c;它会在启动程序时产生&#xff0c;运行程序时存在&#xff0c;关闭程序时消亡。 例如&#xff1a;正…

胡圆圆的暑期实习经验分享

背景 实验室一般是在研究生二年级的时候会放实习&#xff0c;在以后的日子就是自己完成毕业工作要求&#xff0c;基本上不再涉及实验室的活了&#xff0c;目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享&#xff0c;本着不…

uView IndexList 索引列表

通过折叠面板收纳内容区域 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff09;H5小程序√√√√ #基本使用 外层包裹一个index-list组件&#xff0c;锚点通过index-anchor组件传入&#xff0c;自定义列表内容通过index-item嵌套使用 nvue需要将…

【Redis】非关系型数据库之Redis的增删改查

目录 一、Redis的数据类型分类 二、Redis的字符串类型string 三、Redis的列表list 四、Redis的哈希hash 五、Redis的无序集合set 六、Redis的有序集合zset 七、Redis的通用命令 一、Redis的数据类型分类 通常Redis的数据类型有五大基础类型 String&#xff08;字符串&am…

Beauty algorithm(二)唇妆

实现唇妆过程中首先确定唇部位置,其次对该区域进行渲染。 一、skills 前瞻 1、cv::convexHull 在点集中寻找凸包点 void convexHull( InputArray points, OutputArray hull, bool clockwise = false, bool returnPoints = true ); 参数poi…

安全加固之weblogic屏蔽T3协议

一、前言 开放weblogic控制台的7001端口&#xff0c;默认会开启T3协议服务&#xff0c;T3协议则会触发的Weblogic Server WLS Core Components中存在反序列化漏洞&#xff0c;攻击者可以发送构造的恶意T3协议数据&#xff0c;获取目标服务器权限。 本文介绍通过控制T3协议的访问…

[JavaWeb玩耍日记] 数据库

mysql版本&#xff1a;5.7.24 使用Navicat for MySQL辅助学习(2015年版)&#xff0c;这个在粘贴本博客的块引用内容时会有额外的不可见内容导致sql运行出问题&#xff0c;不过有影响的地方笔者已排除 目录 一.数据库创建 二.使用数据库与创建表 三.表内列的数据类型 四.修…

【开源】基于JAVA语言的服装店库存管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

对Tor的去匿名化攻击的调查

文章信息 论文题目&#xff1a;De-Anonymisation Attacks on Tor: A Survey 期刊&#xff08;会议&#xff09;&#xff1a; IEEE Communications Surveys & Tutorials 时间&#xff1a;2021 级别&#xff1a;中科院1区&#xff08;IF&#xff1a;35.6&#xff09; 文章链…