设计思路

在(教学类-06-01)测20以内加减法的最大数量(优化版 20220122 VS python 20以内加减法)CSDN 中可以算出20以内加减法混合题的最多题数。

为了更方便地区分20以内加法题、20以内减法题、20以内加减法混合题。阿夏将马老师的代码进行微调修改,从而能够更方便地根据需求,批量出不重复的三类题目(纯加法题、纯减法题、加减法混合题)

一、程序运行测试后的“XX以内加减法、减法题、加法题”的最大不重复题目数量。

一、代码

# -*- coding: utf-8 -*-
"""
@author: 马清新
@file: 阿夏修改(最大不重复算式值 20以内加法题、20以内减法题、20以内加减法混合题(最大不重复算式值).py
@time: 2022/2/4 17.18# 特别说明
1、选择“1.纯加法题。2.纯减法题。3.加减法混合题(请输入序号)”
2、分开计算,纯加法题数量+纯减法题数量=加减法混合题数量。
3、结果分别保存在相应的TXT内
4、可通过注释,选择txt里面题目是否有答案。
5、本题所有答案都是打乱模式 random.shuffle.如果是10以内加法、减法、加减法可以排序 sort """import random
from re import Xchoice=int(input('------------------------------------\n''求X以内的加法题、减法题、加减法题的数量?\n''1.纯加法题。2.纯减法题。3.加减法混合题(请输入序号)\n''------------------------------------\n'))
# 加法题 :20以内不重复的所有加法题
if choice == 1:sumMax = int(input('请输入纯加法算式最大和((≥0)):\n'))# 输入最大值regNum = int(input('请输入需要纯加法算式的数量:\n'))# 输入需要的数量# 生成1个列表,列表从0开始,到算术最大和结束,因为range函数包左不包右,因此如果要包括算式最大和,必须+1# range函数从0开始,这样列表元素和列表索引一致,减轻算法的难度numList = [x for x in range(0,sumMax+1)]# 建立整数列表,假设SUMMAX=20 sumMax+1等于21 但实际范围就是1-20,确保列表索引和列表元素一致# resultList列表用于保存最后需求数量的合规算术式resultList = []# 储存结果的列表# 从列表第2个元素开始到列表最后一个元素进行循环遍历for x in numList[0:]:# 0等于数字1# 从列表第x个元素开始到列表最后一个元素进行循环遍历for y in numList[x:]:#  加法if (x == y) and (x + y <= sumMax)and (y != 0): # X或Y两者一个或者两个都不能0。没有0+0,0-0tempStr = str(x) + ' + ' + str(y) + ' = 'resultList.append((tempStr, (x+y)))  elif x + y <= sumMax and (y != 0):# 第一位或者第二位都不为0,也就是没有tempStr = str(x) + ' + ' + str(y) + ' = 'resultList.append((tempStr, (x+y)))tempStr = str(y) + ' + ' + str(x) + ' = 'resultList.append((tempStr, (x+y)))               elif y - x == 0 and(y == 0):#此段只有一个答案0+0=0,不需要的话,此段注释掉tempStr = str(y) + ' + ' + str(x) + ' = '#减法类型3 y-x=0   resultList.append((tempStr, (y+x)))# 带答案的题目,如0+0=0,# 建立最终符合最终要求的算式列表selectList = []# 选择列表if regNum > len(resultList):#如果(输入算式的数量)大于(结果列表的数量)#输入题数大于实际需求,就用shuffle洗牌,print(f'您的需求大于最大算式生成数量!最大生成算式数量为{len(resultList)}') # 加了最大不重复算式统计值,如果输入的题数大于储存结果的列表的数量,列表加LENi = len(resultList)# i的数量等于储存结果的列表的数量for _ in resultList:# 值在循环储存结果的列表内selectList.append(_) #选择列表 需要添加循环储存结果列表的内容random.shuffle(selectList) #shuffle 洗牌算法,把列表所有元素打乱,随机排列# selectList.sort()#sort 正序排列,只有10以内的能排序,超过10就乱序for _ in selectList:   # 可选打印带答案的和不带答案啊8print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案else:#输入题数小于实际需求,代码自动随机抽取,不会排序,i = regNumselectList = random.sample(resultList,i)for _ in selectList:# 可选打印带答案的和不带答案啊print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案2# 验证生成算式数量70print(f'共生成不重复的纯加法算式的题目数量{len(selectList)}')# 选择列表的数量print(f'纯加法最大不重复的算式的限制数量{len(resultList)}')#  结果列表的数量# 2月4日修改TXT文件名称str_title = '%d以内的纯加法题(共%d题).txt' % (sumMax, len(resultList)) # 保存带数字提示的题目with open(str_title,'w') as f:#  打开TXT文件for a in selectList:#  #循环查找答案的内容f.write(str(a[0])+'\n')# 不带答案# f.write(str(a[1])+'\n')#只有答案# f.write(str(a[0])+str(a[1])+'\n')#有题目有答案  TXT里面是题目+答案,终端显示题目 无答案,因为上面选了(0)f.close()# #关闭TXT# 减法题 :20以内不重复的所有减法题 if choice==2:sumMax = int(input('请输入纯减法算式最大和((≥0)):\n'))# 输入最大值regNum = int(input('请输入需要的纯减法算式的数量:\n'))# 输入需要的数量# 生成1个列表,列表从0开始,到算术最大和结束,因为range函数包左不包右,因此如果要包括算式最大和,必须+1# range函数从0开始,这样列表元素和列表索引一致,减轻算法的难度numList = [x for x in range(0,sumMax+1)]# 建立整数列表,假设SUMMAX=20 sumMax+1等于21 但实际范围就是1-20,确保列表索引和列表元素一致# resultList列表用于保存最后需求数量的合规算术式resultList = []# 储存结果的列表# 从列表第2个元素开始到列表最后一个元素进行循环遍历for x in numList[0:]:# 0等于数字1# 从列表第x个元素开始到列表最后一个元素进行循环遍历for y in numList[x:]:#  加法if (x == y) and (x + y <= sumMax)and (y != 0): # X或Y两者一个或者两个都不能0。没有0+0,0-0tempStr = str(x) + ' - ' + str(y) + ' = 'resultList.append((tempStr, (x-y)))#加和减 查找 x + y < 算式最大和的加减法,此处考虑加法交换律,减法中去除了相减为0的情况,因为此处y>xelif x + y <= sumMax and (y != 0):# 第一位或者第二位都不为0,也就是没有tempStr = str(y) + ' - ' + str(x) + ' = 'resultList.append((tempStr, (y-x)))# 考虑循环后期,x+y会打印算式要求的最大和,但是减法符合算式要求,处于严谨的考虑没有使用else# 减法 此处可以考虑直接使用elseelif y - x >= 0 and y != 0: # y可能等于x ,答案为0,但没有0-0tempStr = str(y) + ' - ' + str(x) + ' = 'resultList.append((tempStr, (y-x)))elif y - x == 0 and (y == 0):#此段只有一个答案0+0=0,不需要的话,此段注释掉tempStr = str(y) + ' - ' + str(x) + ' = '#减法类型3 y-x=0   resultList.append((tempStr, (y-x)))# 带答案的题目,如0-0=0,# 建立最终符合最终要求的算式列表selectList = []# 选择列表if regNum > len(resultList):#如果(输入算式的数量)大于(结果列表的数量)#输入题数大于实际需求,就用shuffle洗牌,print(f'您的需求大于最大算式生成数量!最大生成算式数量为{len(resultList)}') # 加了最大不重复算式统计值,如果输入的题数大于储存结果的列表的数量,列表加LENi = len(resultList)# i的数量等于储存结果的列表的数量for _ in resultList:# 值在循环储存结果的列表内selectList.append(_) #选择列表 需要添加循环储存结果列表的内容random.shuffle(selectList) #shuffle 洗牌算法,把列表所有元素打乱,随机排列# selectList.sort()#sort 正序排列,只有10以内的能排序,超过10就乱序for _ in selectList:   # 可选打印带答案的和不带答案啊8print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案else:#输入题数小于实际需求,代码自动随机抽取,不会排序,i = regNumselectList = random.sample(resultList,i)for _ in selectList:# 可选打印带答案的和不带答案啊print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案2# 验证生成算式数量70print(f'共生成不重复的纯减法算式的题目数量{len(selectList)}')# 选择列表的数量print(f'纯减法题目最大不重复的算式的限制数量{len(resultList)}')#  结果列表的数量# 2月4日修改TXT文件名称str_title = '%d以内的纯减法题(共%d题).txt' % (sumMax, len(resultList)) # 保存带数字提示的题目with open(str_title,'w') as f:#  打开TXT文件for a in selectList:#  #循环查找答案的内容f.write(str(a[0])+'\n')# 不带答案# f.write(str(a[1])+'\n')#只有答案# f.write(str(a[0])+str(a[1])+'\n')#有题目有答案  TXT里面是题目+答案,终端显示题目 无答案,因为上面选了(0)f.close()# #关闭TXT# 加减法混合:20以内加法减法混合题 的数量
if choice==3: sumMax = int(input('请输入加减法混合算式题的最大和((≥0)):\n'))# 输入最大值regNum = int(input('请输入需要生成加减法混合算式题的数量:\n'))# 输入需要的数量# 生成1个列表,列表从0开始,到算术最大和结束,因为range函数包左不包右,因此如果要包括算式最大和,必须+1# range函数从0开始,这样列表元素和列表索引一致,减轻算法的难度numList = [x for x in range(0,sumMax+1)]# 建立整数列表,假设SUMMAX=20 sumMax+1等于21 但实际范围就是1-20,确保列表索引和列表元素一致
# resultList列表用于保存最后需求数量的合规算术式resultList = []# 储存结果的列表# 从列表第2个元素开始到列表最后一个元素进行循环遍历for x in numList[0:]:# 0等于数字11# 从列表第x个元素开始到列表最后一个元素进行循环遍历for y in numList[x:]:#  加法if (x == y) and (x + y <= sumMax)and (y != 0): # X或Y两者一个或者两个都不能0。没有0+0,0-0tempStr = str(x) + ' + ' + str(y) + ' = 'resultList.append((tempStr, (x+y)))tempStr = str(x) + ' - ' + str(y) + ' = 'resultList.append((tempStr, (x-y)))#加和减 查找 x + y < 算式最大和的加减法,此处考虑加法交换律,减法中去除了相减为0的情况,因为此处y>xelif x + y <= sumMax and (y != 0):# 第一位或者第二位都不为0,也就是没有tempStr = str(x) + ' + ' + str(y) + ' = 'resultList.append((tempStr, (x+y)))tempStr = str(y) + ' + ' + str(x) + ' = 'resultList.append((tempStr, (x+y)))tempStr = str(y) + ' - ' + str(x) + ' = 'resultList.append((tempStr, (y-x)))# 考虑循环后期,x+y会打印算式要求的最大和,但是减法符合算式要求,处于严谨的考虑没有使用else# 减法 此处可以考虑直接使用elseelif y - x >= 0 and y != 0: # y可能等于x ,答案为0,但没有0-0tempStr = str(y) + ' - ' + str(x) + ' = 'resultList.append((tempStr, (y-x)))elif y - x == 0 :#等数 相加 相减等于0,不需要的话,此段注释掉tempStr = str(y) + ' + ' + str(x) + ' = '#减法类型3 y-x=0   resultList.append((tempStr, (y+x)))# 带答案的题目,如0+0=0,tempStr = str(y) + ' - ' + str(x) + ' = '#减法类型3 y-x=0   resultList.append((tempStr, (y-x)))# 带答案的题目,如0-0=0,# 建立最终符合最终要求的算式列表selectList = []# 选择列表if regNum > len(resultList):#如果(输入算式的数量)大于(结果列表的数量)#输入题数大于实际需求,就用shuffle洗牌,print(f'您的需求大于最大算式生成数量!最大生成算式数量为{len(resultList)}') # 加了最大不重复算式统计值,如果输入的题数大于储存结果的列表的数量,列表加LENi = len(resultList)# i的数量等于储存结果的列表的数量for _ in resultList:# 值在循环储存结果的列表内selectList.append(_) #选择列表 需要添加循环储存结果列表的内容random.shuffle(selectList) #shuffle 洗牌算法,把列表所有元素打乱,随机排列# selectList.sort()#sort 正序排列,只有10以内的能排序,超过10就乱序for _ in selectList:   # 可选打印带答案的和不带答案啊8print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案else:#输入题数小于实际需求,代码自动随机抽取,不会排序,i = regNumselectList = random.sample(resultList,i)for _ in selectList:# 可选打印带答案的和不带答案啊print(_[0])# 不带答案# print(f'{_[0]}{_[1]}')# 带答案2# 验证生成算式数量70print(f'共生成不重复的算式的加减法混合题目数量{len(selectList)}')# 选择列表的数量print(f'加减法混合题目最大不重复的算式的限制数量{len(resultList)}')#  结果列表的数量# 2月4日修改TXT文件名称str_title = '%d以内的加减法混合题(共%d题).txt' % (sumMax, len(resultList)) # 保存带数字提示的题目with open(str_title,'w') as f:#  打开TXT文件for a in selectList:#  #循环查找答案的内容f.write(str(a[0])+'\n')# 不带答案# f.write(str(a[1])+'\n')#只有答案# f.write(str(a[0])+str(a[1])+'\n')#有题目有答案  TXT里面是题目+答案,终端显示题目 无答案,因为上面选了(0)f.close()# #关闭TXTelse:print('输入错误,请重新输入.')

二、使用方法

(一)把代码存在一个py文件内。名字为" 20以内加减法选择题.py."   随意放在任何路径下。

(二)打开" 20以内加减法选择题.py. 右击运行

 (三)终端出现第一个问题,选择“纯加法题、纯减法题、加减法混合题”

(二)加法题:如5以内加法题

输入1 选择纯加法题 回车

输入5 选择5以内的纯加法题 回车

输入任意数字,回车 这里是89,代表生成的题目数

终端显示21道加法题  回车

TXT里面的5以内不重复加法题

(二)减法题:如5以内减法题

输入2 选择纯减法题,回车

输入5 选择5以内的纯减法题 回车

输入任意数字,回车 这里是758,代表生成的题目数

终端显示21道减法题 回车

TXT里面的5以内不重复减法题 回车

(三)加减法混合题:如5以内减法题

输入3 选择加减法混合题,回车

输入5 选择5以内的加减法混合题 回车

输入任意数字,回车 这里是123,代表生成的题目数

终端显示42道加减法混合题 回车

TXT里面的5以内不重复加减法混合题 回车

本章总结

本代码可以生成不重复的x 以内2个数字加减法混合题。通过三个选择,分别获得X以内的纯加法题,纯减法题和加减法混合题。在幼儿教具设置时有了更多的选择:

1.符号上的选择:纯加 纯减 加减混合

2.数量上的选择:5以内 10以内 20以内

3.答案上的选择:列示题有答案、列示题有无答案、(通过注释修改)

4.教学常用x以内加减法的数字选择。大班常用 5以内、10以内

感谢作者马清新老师的代码,通过修改,不断优化程序,可以用一个代码,分别获得”5以内、10以内、20以内”的不重复的加减法题、加法题和减法题、确保下次为大班孩子们打印的2个数字加减法题/加法题/减法题里能够没有重复题,实现充分练习的目标。❀❀❀❀❀❀

【教学类-06-02】20以内加法题、减法题、加减法混合题的不重复数量及题目相关推荐

  1. 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)

    作品样式: 背景需求: 前一篇提到5以内不重复(不超过25题)加法题的word界面布局,做为普测题目打印 [教学类-30-01]5以内加法题不重复(一页两份)包含1以内.2以内.3以内.4以内.5以内 ...

  2. 【教学类-30-01】5以内加法题不重复(一页两份)(包含1以内、2以内、3以内、4以内、5以内加法,抽取最大不重复数量)

    作品样式: 背景需求: 虽然学前阶段就对幼儿训练加减法列式题遭到诟病,但是从不少幼儿(特别是二胎)在家中已经开始适应加减法题型了. 结合中班年龄特点,我从5以内的不重复加法题开始实验(雪花点点数) 材 ...

  3. 【教学类-30-04】10以内减法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内减法题 只抽取25个)

    作品展示 --10以内不重复减法题 需求: 1.制作10以内减法题 材料准备: Word模板 代码展示: ''' 6.7.8.9.10以内减法一页两份(10以内减法一页两份(6以内.7以内.8以内.9 ...

  4. python作业——随机生成不重复的20以内加法算式

    运行结果截图: import randomdef fun():i = 50lis = []while i > 0:num1 = random.randint(0, 20)num2 = rando ...

  5. 【教学类-06-03】20220327 X以内数字分合题(分)及生成word 打印docx纸(方法一)(Python VS )

    本代码价值: 终端生成的列表 通过TXT文本转换成docx文件 征文需求: 3月上海疫情隔离开启居家办公生涯.月底区教育局有一个"工具运用"的征文比赛,阿夏以<设计Pytho ...

  6. 【教学类-06-05】20220405 20以内加减法“从小到大排序题“(不重复题)(Python VS)

    前提需求: [教学类-07-02]20220330 5以内加减法不重复题 及生成word打印docx纸(方法二)(Python VS)_reasonsummer的博客-CSDN博客[教学类-07-02 ...

  7. 计算机知识小口诀,字根表口诀怎么快速背-小学数学:一年级20以内加减法口诀表,附背诵技巧!...

    学习10和20以内的加减法窍门 学习10以内数加减法的方法 1.加法:大数记心里,小数往上数,如4+2= 把4记在心里,往上数两个数,5.6, 之后得出结果4+2=6 2.减法:大数记在心里,小数往下 ...

  8. # 异运算_一年级数学:3000道20内纯进、退位口算题,每天100道日新又月异

    孩子上小学一年级就要正式接触数学,通过数学上学期的学习,基本上10以内的加减法可以解决了,但是还不够熟练.到了一年级数学下学期,就要解决20以内的加减法了.我们大人觉得这些都很简单,但是孩子不同,他们 ...

  9. 【教学类-33-02】20230518食物加加加2.0版(3、4、5、10、15、20以内数字加法,随机抽数)

    作品展示 3以内点数加法:加法最大值6 4以内点数加法:加法最大值8 背景需求: 幼儿在完成"5以内加法21题.5以内减法21题"时,有两个特点: 1.50%幼儿能口算,另外50% ...

  10. python随机出100道加法题_自动出题随机100题-20以内加减法全部算式

    班  级: 姓  名: 12-8= 19-4= 11-11= 14-10= 18-1= 1+14= 17-2= 6+12= 15-1= 13-4= 17-8= 19-19= 14-3= 4+15= 1 ...

最新文章

  1. 论文解读 Combating Adversarial Misspellings with Robust Word Recognition
  2. 智源论坛报名 | 智能信息检索与挖掘报告会(9月17日)
  3. RabbitMQ管理(4)——应用管理
  4. 第五章 条件、循环及其他语句
  5. oracle中lag()函数和lead()函数的用法(图文)
  6. 【转】Odoo开发之:工作流 workflow
  7. 操作系统 第二部分 进程管理(五)
  8. Latex安装教程(附美赛论文latex模板)
  9. python词云图片在哪儿打开_如何用python创建词云图片
  10. 云计算能从事哪些岗位 未来职业发展怎么规划
  11. mac居家办公怎么连接公司内网,用tunnelblick
  12. 写公众号的一些【奇葩经历】以及【思考】
  13. 在记事本上用java写一段代码,程序到底是如何跑起来的?
  14. 基于51单片机的4位竞赛抢答器的设计
  15. 【现代简约风格装修案例】诠释不一样的简单 !
  16. 西方国家的饮食讲究简单、清淡、新鲜
  17. MySQL中的读锁和写锁(InnoDb行锁、表锁、 MyISAM共享读锁 、MyISAM独占写锁)
  18. C#Web网站的创建
  19. 51单片机教程:数码管动态显示(0~99999999)74hc138驱动
  20. 山东ACM省赛酱油记

热门文章

  1. 如何用photoshop做24色环_Photoshop绘制超逼真的色轮/色环配色表效果图
  2. pandoc输出中文pdf cmd命令记录
  3. SCH自动标注器件号
  4. 百练2739:计算对数题解
  5. 资源网址合集的合集,上千个链接!
  6. xxx科技有限公司_公司管理制度
  7. MongoDB集群节点RECOVERING故障恢复
  8. MySql安装 Staring the server出错
  9. 成功解决 zsh: command not found
  10. 从产业图谱看中国2020年数据智能行业的发展态势