(教学类-08-01) 20220203 数字分合(固定答案5的最多题数)
2022/2/3 23:20:16
本文主要是介绍(教学类-08-01) 20220203 数字分合(固定答案5的最多题数),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
设计思路:
《(教学类-06)测20以内加减法的最大数量(优化版 20220122 VS python 20以内加减法)》的代码可以随机生成x以内的最多加法题、加法题。阿夏尝试修改代码制作“5的分合”“10的分合”的列示题及数量。
主要解决:
1、和等于5的加法题共有几题:0+5=5 1+4=5 ……(5的分合 6的分合 10的分合)
2. 差等于5的减法题共有几题(设置被减数10).: 10-5=5 9-4=5 ……()
使用方法:
1、把py代码保存在‘加法减法等于5的数量.py'内
2、py代码
# -*- coding: utf-8 -*- """ @author: 马清新 @file: 阿夏修改练习 和等于5的加法题共有几题.py 差等于5的减法题共有几题(设置被减数).py @time: 2022/2/3 20:15 # 特别说明 1.答案等于5的2个数字加法题,共有几道(5以内分合)? 2.答案等于5的2个数字减法题,共有几道?(设置被减数) """ import random from re import X from tkinter import Y #设置问题: choice=int(input('-----------------------------------\n' '您需要X以内的整数加法题还是整数减法题?\n' '1.加法 2.减法(请输入序号)\n' '------------------------------------\n')) if choice==1: #加法 plusAnswer = int(input('请输入加法的答案z((≥0)):\n'))# 输入加法题答案数,比如求加法列示题的答案为5的题目共有多少题 regNum = int(input('请输入需要生成算式的数量:\n'))# 输入需要的数量 # 生成1个列表,列表从0开始,到算术最大和结束,因为range函数包左不包右,因此如果要包括算式最大和,必须+1 # range函数从0开始,这样列表元素和列表索引一致,减轻算法的难度 numList = [x for x in range(0,plusAnswer+1)]# 建立整数列表,假设SUMMAX=20 sumMax+1等于21 但实际范围就是1-20,确保列表索引和列表元素一致 # resultList列表用于保存最后需求数量的合规算术式 resultList = []# 储存结果的列表 # 从列表第2个元素开始到列表最后一个元素进行循环遍历 for x in numList[0:]:# 0等于数字1 # 从列表第x个元素开始到列表最后一个元素进行循环遍历 for y in numList[x:]: # 第1种加法,xy相等 x + y <20 列表元素开始时存在两个元素相等的情况,由于加法交换律会产生重复,所以单独进行区分 if x+y ==plusAnswer and y!=0: tempStr = str(x) + ' + ' + str(y) + ' = ' #加法类型1 x+y= (x=y) resultList.append((tempStr, (x+y)))# 带答案的题目,如2+2=4,第70行和72行,选择 0,或者1,实现有无答案的打印结果 tempStr = str(y) + ' + ' + str(x) + ' = ' #加法类型1 x+y= (x=y) resultList.append((tempStr, (y+x)))# 带答案的题目,如2+2=4,第70行和 selectList = []# 选择列表 if regNum > len(resultList):#如果(输入算式的数量)大于(结果列表的数量)#输入题数大于实际需求,就用shuffle洗牌, print(f'您的需求大于最大算式生成数量!最大生成算式数量为{len(resultList)}') # 加了最大不重复算式统计值,如果输入的题数大于储存结果的列表的数量,列表加LEN i = len(resultList)# i的数量等于储存结果的列表的数量 for _ in resultList:# 值在循环储存结果的列表内 # selectList = random.sample(resultList,i) selectList.append(_) #选择列表 需要添加循环储存结果列表的内容 selectList.sort() #从小到大 正序排列 0 + 5 = 5 1 + 4 = 5 …… # selectList.sort(reverse=True) #从大到小 倒叙排列 5 + 0 = 5 4 + 1 = 5 …… # for _ in selectList: # # 可选打印带答案的和不带答案啊8 # print(_[0])# 不带答案5 # # print(f'{_[0]}{_[1]}')# 带答案 # else:#输入题数小于实际需求,代码自动随机抽取,不会排序, # i = regNum # selectList = random.sample(resultList,i) # for _ in selectList: # # 可选打印带答案的和不带答案啊 # print(_[0])# 不带答案 # # print(f'{_[0]}{_[1]}')# 带答案2 print(f'共生成不重复的加法算式的题目数量{len(selectList)}')# 选择列表的数量 print(f'最大不重复的加法算式的限制数量{len(resultList)}')# 结果列表的数量 # 保存为TXT文件(在默认打开文件夹下,手动拷贝到Word里1 str_title = '和等于%d的加法题共有%d题.txt' % (plusAnswer, len(resultList)) # 保存文件名60 with open(str_title,'w') as f:# 打开TXT文件 for a in selectList:# #循环查找答案的内容878 # f.write(str(a[0])+'\n')# 显示0+5= 1+4= f.write(str(a[0])+str(a[1])+'\n')# 显示0+5=5 1+4=5 f.close()# #关闭TXT、 elif choice==2: # 减法 subAnswer = int(input('请输入想要减法的答案: '))# 输入减法题想要的答案数,如5,如求减法列示题的答案为5的题目共有多少题 sumMax=int(input('请输入被减数(最大数): '))# 比如10-5=5 9-4=5 输入减法题的第一个数X10,9 regNum = int(input('请输入需要生成算式的数量: '))# 输入需要的数量 # 生成1个列表,列表从0开始,到算术最大和结束,因为range函数包左不包右,因此如果要包括算式最大和,必须+1 # range函数从0开始,这样列表元素和列表索引一致,减轻算法的难度 numList = [x for x in range(0,sumMax+1)]# 建立整数列表,取值范围在5-10之间 # resultList列表用于保存最后需求数量的合规算术式 resultList = []# 储存结果的列表 # 从列表第2个元素开始到列表最后一个元素进行循环遍历 for x in numList[0:]:# 0等于数字1 # 从列表第x个元素开始到列表最后一个元素进行循环遍历 for y in numList[x:]: # 第1种减法,xy不相等 x>y if x - y == subAnswer and y!=x:# y-x的第一个条件x+y<20,并且x不等于y(等于就会出现答案0) tempStr = str(x) + ' - ' + str(y) + ' = '#减法类型1 y-x= resultList.append((tempStr, (x-y)))# 带答案的题目,如3-2=1, elif y - x ==subAnswer: #减法条件包括 y+x小于20和y - x > 0 tempStr = str(y) + ' - ' + str(x) + ' = '#减法类型2 y-x= (y-x的第二个条件y-x>0) resultList.append((tempStr, (y-x)))# 带答案的题目,如2+2=4, selectList = []# 选择列表 if regNum > len(resultList):#如果(输入算式的数量)大于(结果列表的数量)#输入题数大于实际需求,就用shuffle洗牌, print(f'您的需求大于最大算式生成数量!最大生成算式数量为{len(resultList)}') # 加了最大不重复算式统计值,如果输入的题数大于储存结果的列表的数量,列表加LEN i = len(resultList)# i的数量等于储存结果的列表的数量 for _ in resultList:# 值在循环储存结果的列表内 # selectList = random.sample(resultList,i) selectList.append(_) #选择列表 需要添加循环储存结果列表的内容 # 此时是从小到大 正序排列 5- 0 = 5 6 - 1 = 5 sorted(selectList)#从小到大 正序排列 5 - 0 = 5 6 - 1 = 5 # reversed(selectList)#从小到大 正序排列 5 - 0 = 5 6 - 1 = 5 for _ in selectList: # 可选打印带答案的和不带答案啊8 # print(_[0])# 不带答案 print(f'{_[0]}{_[1]}')# 带答案 else:#输入题数小于实际需求,代码自动随机抽取,不会排序, i = regNum selectList = random.sample(resultList,i) for _ in selectList: # 可选打印带答案的和不带答案啊 # print(_[0])# 不带答案 print(f'{_[0]}{_[1]}')# 带答案2 # 验证生成算式数量70 print(f'共生成不重复的减法算式的题目数量{len(selectList)}')# 选择列表的数量 print(f'最大不重复的减法算式的限制数量{len(resultList)}')# 结果列表的数量 # 保存为TXT文件(在默认打开文件夹下,手动拷贝到Word里1 str_title = '差等于%d的减法题(被减数%d)共有%d题.txt' % (subAnswer, sumMax,len(resultList)) with open(str_title,'w') as f:# 打开TXT文件 for a in selectList:# #循环查找答案的内容8 # f.write(str(a[0])+'\n')# 显示10-5= 9-5= f.write(str(a[0])+str(a[1])+'\n')# 显示10-5=5 9-5=5 f.close()# #关闭TXT、 else: print('您输入的功能不存在。')
3.选择1 加法题 运行
4.选择加法题还是减法题
5.选择加法题 输入1+回车
6.加法题 和等于5 回车
h
7.随意输入想要的题目数量(三位数),但最后只会保留大约6题
8.最后都是等于5,生成不重复加法题6题,最大不重复加法数量6题,
9.生成的TXT格式的代码
10.在TXT里面的题目(又题目+有答案5)
11.在TXT里面的题目(只有题目,没有答案5)
12.选择2 减法题 运行
13.差为5的列示题
14.设定被减数的范围:如6-1=5 7-2=5……选一个最大的被减数,这里是10以内最多有多少减法题最后答案等于5
15,题目数量依旧随便输入数字,反正最后只会生成实际题量
16.10以内减法=5的题目数量6题
17.减法TXT 样式一:有题目 有答案5
18. 减法TXT 样式二:有题目 无答案
19.输入不是1和2的数字或汉字,显示无此选项。
远期目标:
本代码设计主要是为大班数学10以内分合的题型做准备,通过微调代码内容,进一步解读和理解马先生的源代码的内容,为后续设计提供基础。感谢马先生。
这是阿夏第9个实际运用到幼儿园教学中的Python自动化案例(教学类-08),希望能通过借鉴、实验、修改,将Python运用到幼儿园办公工作和幼儿教学中,提高工作效率,推动幼儿个性化学习和层次性学习成效。
这篇关于(教学类-08-01) 20220203 数字分合(固定答案5的最多题数)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程