python代码随机生成加减乘除混合运算题,给熊孩子练习很不错哦!!!
寒假在家不能让他闲着,熊孩子的计算能力一如既往的差,学渣老爹继续根据学习进度自动生成寒假作业。不多说了,直接上代码,本着能用就好的原则,并没有调优,也没有把对应功能抽成函数。

代码:(没有过滤九九乘法表规则,有点乱)

import random
#定义多个变量并赋值
exp1,exp2 = "",""
str1,str2 = "",""
j=0
count=int(input("请输入出题数量:"))
while j<count:if j<count:                              # 随机产生"+"或 "-"号 或"*"号 或"/"号flag = random.choice(["+", "-", "*", "/"])   # 随机产生"+"或 "-"号 或"*"号 或"/"号if flag == "+":a = random.randint(0, 100)b = random.randint(0, 100-a)result=a+b# 如果是减法,被减数和减数都应小于100elif flag == "-":a = random.randint(1, 100)b = random.randint(1, 100)# ab比较,较大的数为被减数if a < b:a,b=b,aresult=a-belif flag == "*":a = random.randint(1, 100)b = random.randint(1, 100)result=a*belif flag == "/":a = random.randint(1, 100)b = random.randint(1, 100)if a < b:a,b=b,aresult=int(a/b)a = str(a).ljust(2, " ")       # ljust左对齐b = str(b).ljust(2, " ")exp1 = a +" "+ flag +" "+ b + " ="exp2 = a +" "+flag +" "+ b + " ="+str(result)if j%2==0:                       #  j为偶数,不换行str1 = str1 + exp1 + '\t'str2 = str2 + exp2 + '\t'        else:                              #  j为奇数,换行str1 = str1 + exp1 + '\n'str2 = str2 + exp2 + '\n'j=j+1
with open('math.txt','w') as f:f.write(str1)
with open('key.txt','w') as f:f.write(str2)
print(count,"道混合加减乘除法题:")
print(str1)
print(count,"道混合加减乘除法题(带答案):")
print(str2)

运行截图:

在新浪博客找到了一个比较好的代码,可参考:
注:如果是加号,保证两个数都不超过50,目前学的都是100以内的数;
如果是除号,保证在乘法口诀范围内即可。
代码实现:

import random
string = ""for day in range(1, 31):string = ""string = string + "\n快乐寒假第 " + str(day) + " 天:\n(1)快速口算\n"#用来记录每行算术题的个数num = 0#生成每天20道加减乘除for i in range(1, 13):flag = random.choice([" + ", " - ", " × ", " ÷ "])exp = ""# 如果是加号,保证两个数都不超过50,目前学的都是100以内的数if flag == " + ":a = str(random.randint(1, 50)).ljust(2, " ")b = str(random.randint(1, 50)).ljust(2, " ")exp = a + flag + b# 如果是减号,保证被减数和减数都小于等于100即可if flag == " - ":a = random.randint(1, 100)b = random.randint(1, 100)# 保证较大的数作为被减数if a < b:tmp = aa = bb = tmpa = str(a).ljust(2, " ")b = str(b).ljust(2, " ")exp = a + flag + b# 如果是乘号,保证两个数都小于10即可if flag == " × ":a = str(random.randint(0, 9)).ljust(2, " ")b = str(random.randint(0, 9)).ljust(2, " ")exp = a + flag + b# 如果是除号,保证在乘法口诀范围内即可if flag == " ÷ ":a = random.choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, 28, 30, 32, 35, 36, 40,
42, 45, 48, 49, 54, 56, 63, 64, 72, 81])if a == 81:b = 9if a == 72:b = random.choice([1, 8, 9])if a == 64:b = 8if a == 63:b = random.choice([1, 7, 9])if a == 56:b = random.choice([1, 7, 8])if a == 54:b = random.choice([1, 6, 9])if a == 49:b = 7if a == 48:b = random.choice([1, 6, 8])if a == 45:b = random.choice([1, 5, 9])if a == 42:b = random.choice([1, 6, 7])if a == 40:b = random.choice([1, 5, 8])if a == 36:b = random.choice([1, 4, 9])if a == 35:b = random.choice([1, 5, 7])if a == 32:b = random.choice([1, 4, 8])if a == 30:b = random.choice([1, 6, 5])if a == 28:b = random.choice([1, 4, 7])if a == 27:b = random.choice([1, 3, 9])if a == 25:b = random.choice([1, 5])if a == 24:b = random.choice([1, 3, 4, 6, 8])if a == 21:b = random.choice([1, 3, 7])if a == 20:b = random.choice([1, 4, 5])if a == 18:b = random.choice([1, 2, 3, 6, 9])if a == 16:b = random.choice([1, 2, 4, 8])if a == 15:b = random.choice([1, 3, 5])if a == 14:b = random.choice([1, 2, 7])if a == 12:b = random.choice([1, 2, 3, 4, 6])if a == 10:b = random.choice([1, 2, 5])if a == 9:b = random.choice([1, 3, 9])if a == 8:b = random.choice([1, 2, 4, 8])if a == 7:b = random.choice([1, 7])if a == 6:b = random.choice([1, 2, 3, 6])if a == 5:b = random.choice([1, 5])if a == 4:b = random.choice([1, 2, 4])if a == 3:b = random.choice([1, 3])if a == 2:b = random.choice([1, 2])if a == 1:b = 1if a == 0:b = random.randint(1, 9)a = str(a).ljust(2, " ")b = str(b).ljust(2, " ")exp = a + flag + bif num < 3:string = string + exp + " =".ljust(7, " ")num = num + 1# 达到4个题目,换行else:string = string + exp + "=\n"num = 0string = string + "(2)提高口算\n"###用来生成两个运算符的算式# 用来记录每行算术题的个数num = 0for i in range(1, 7):result = 0flag = random.choice([" + ", " - ", " × ", " ÷ "])exp = ""# 如果是加号,保证两个数都不超过50,目前学的都是100以内的数if flag == " + ":a = str(random.randint(1, 50)).ljust(2, " ")b = str(random.randint(1, 50)).ljust(2, " ")exp = a + flag + bresult = int(a) + int(b)# 如果是减号,保证被减数和减数都小于等于100即可if flag == " - ":a = random.randint(1, 100)b = random.randint(1, 100)# 保证较大的数作为被减数if a < b:tmp = aa = bb = tmpa = str(a).ljust(2, " ")b = str(b).ljust(2, " ")exp = a + flag + bresult = int(a) - int(b)# 如果是乘号,保证两个数都小于10即可if flag == " × ":a = str(random.randint(0, 9)).ljust(2, " ")b = str(random.randint(0, 9)).ljust(2, " ")exp = a + flag + bresult = int(a) * int(b)# 如果是除号,保证在乘法口诀范围内即可if flag == " ÷ ":a = random.choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, 28, 30, 32, 35, 36, 40,
42, 45, 48, 49, 54, 56, 63, 64, 72, 81])if a == 81:b = 9if a == 72:b = random.choice([1, 8, 9])if a == 64:b = 8if a == 63:b = random.choice([1, 7, 9])if a == 56:b = random.choice([1, 7, 8])if a == 54:b = random.choice([1, 6, 9])if a == 49:b = 7if a == 48:b = random.choice([1, 6, 8])if a == 45:b = random.choice([1, 5, 9])if a == 42:b = random.choice([1, 6, 7])if a == 40:b = random.choice([1, 5, 8])if a == 36:b = random.choice([1, 4, 9])if a == 35:b = random.choice([1, 5, 7])if a == 32:b = random.choice([1, 4, 8])if a == 30:b = random.choice([1, 6, 5])if a == 28:b = random.choice([1, 4, 7])if a == 27:b = random.choice([1, 3, 9])if a == 25:b = random.choice([1, 5])if a == 24:b = random.choice([1, 3, 4, 6, 8])if a == 21:b = random.choice([1, 3, 7])if a == 20:b = random.choice([1, 4, 5])if a == 18:b = random.choice([1, 2, 3, 6, 9])if a == 16:b = random.choice([1, 2, 4, 8])if a == 15:b = random.choice([1, 3, 5])if a == 14:b = random.choice([1, 2, 7])if a == 12:b = random.choice([1, 2, 3, 4, 6])if a == 10:b = random.choice([1, 2, 5])if a == 9:b = random.choice([1, 3, 9])if a == 8:b = random.choice([1, 2, 4, 8])if a == 7:b = random.choice([1, 7])if a == 6:b = random.choice([1, 2, 3, 6])if a == 5:b = random.choice([1, 5])if a == 4:b = random.choice([1, 2, 4])if a == 3:b = random.choice([1, 3])if a == 2:b = random.choice([1, 2])if a == 1:b = 1if a == 0:b = random.randint(1, 9)a = str(a).ljust(2, " ")b = str(b).ljust(2, " ")exp = a + flag + bresult = int(a) / int(b)flag = random.choice([" + ", " - "])# 如果是加号,保证和不超过100,目前学的都是100以内的数if flag == " + ":a = str(random.randint(1, 100 - result)).ljust(2, " ")exp = exp + flag + a# 如果是减号,保证能够减得着即可if flag == " - ":a = str(random.randint(0, result)).ljust(2, " ")exp = exp + flag + aif num < 2:string = string + exp + " =".ljust(7, " ")num = num + 1# 达到3个题目,换行else:string = string + exp + "=\n"num = 0string = string + "(3)竖式计算\n"###用来生成需要运用竖式运算的题目# 用来记录每行算术题的个数num = 0for i in range(1, 4):result = 0flag = random.choice([" + ", " - "])exp = ""# 如果是加号,保证两个数都不超过50,目前学的都是100以内的数if flag == " + ":a = str(random.randint(1, 50)).ljust(2, " ")b = str(random.randint(1, 50)).ljust(2, " ")exp = a + flag + bresult = int(a) + int(b)# 如果是减号,保证被减数和减数都小于等于100即可if flag == " - ":a = random.randint(1, 100)b = random.randint(1, 100)# 保证较大的数作为被减数if a < b:tmp = aa = bb = tmpa = str(a).ljust(2, " ")b = str(b).ljust(2, " ")exp = a + flag + bresult = int(a) - int(b)flag = random.choice([" + ", " - "])# 如果是加号,保证和不超过100,目前学的都是100以内的数if flag == " + ":a = str(random.randint(1, 100 - result)).ljust(2, " ")exp = exp + flag + a# 如果是减号,保证能够减的着即可if flag == " - ":a = str(random.randint(0, result)).ljust(2, " ")exp = exp + flag + aif num < 2:string = string + exp + " =".ljust(7, " ")num = num + 1# 达到3个题目,换行else:string = string + exp + "=\n\n\n\n\n"num = 0print(string)

运行结果:

参考地址:https://blog.sina.com.cn/s/blog_6e22d8fb0102zif3.html,代码格式不对,谨慎参考。

python学习之给小学生数学运算题(混合加减乘除法)相关推荐

  1. Python的常见几道数学运算题

    一 python 相关数学函数及使用示例 常用的数学函数: ceil(x) 取顶 floor(x) 取底 fabs(x) 取绝对值 factorial (x) 阶乘 hypot(x,y)  sqrt( ...

  2. 日常python学习笔记DAY 8---集合运算(交集、并集、超集和差集)

    日常python学习笔记DAY 8-集合运算(交集.并集.超集和差集) ''' 集合的运算有交并超差以及堆成差集合 ''' #求交集 & .intersection() .intersecti ...

  3. 用python和sympy库解决方程组问题_使用Python的SymPy库解决数学运算问题的方法

    摘要:在学习与科研中,经常会遇到一些数学运算问题,使用计算机完成运算具有速度快和准确性高的优势.Python的Numpy包具有强大的科学运算功能,且具有其他许多主流科学计算语言不具备的免费.开源.轻量 ...

  4. python整数运算_深入 Python (6) 整数对象的数学运算

    整数的基本运算 上一节讲到,在 PyLong_Type 中定义了整数类型的各种属性,比如整数类型的名称 "int".整数对象最常用的是一些数学运算,整数对象当然也是支持这些方法的, ...

  5. numpy 学习汇总18.2 - 数学运算( 基础学习 tcy)

    数学运算 2018/6/18 2018/11/29 1.算术运算 # +, - ,*,/,//,%,divmod(),** or pow() # 1)运算符 a=np.arange(1,7).resh ...

  6. Python练习:同符号数学运算

    练习:同符号数学运算 平台:Python123.io 教师:嵩天 描述 读入一个整数N,分别计算如下内容: 1. N的绝对值: 2. N与10进行同符号加法.减法和乘法运算,同符号运算指使用N的绝对值 ...

  7. 【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人

    Description 小M有很多个机器人,他们要么一直说真话,要么一直说假话. 然后每个人都说: (1). 不到N个人比我工作得多 (2). 至少M个人的工资比我高. 保证没有两个人的工作一样重,也 ...

  8. Python学习(4)——数学类问题解答

    跟着廖雪峰大神的Python基础教程大致过了一遍之后,开始尝试写简单的题,毕竟实践出真知嘛~~理论知识一看就会,一做就废 - -! 找时间把菜鸟Python教程也跟着多学几遍! 接下来就是在LeetC ...

  9. 学习R语言:数学运算与模拟

    本文内容来自<R 语言编程艺术>(The Art of R Programming),有部分修改 R 内置很多数学函数和统计分布函数. 数学函数 exp() log() log10() s ...

最新文章

  1. C++中的const成员函数介绍
  2. SpringMVC组件说明以及配置代码
  3. 服务器事件刷新消息,Windows Server 2003 中的 DNS 事件消息 1616 到 6702
  4. 116. 填充每个节点的下一个右侧节点指针
  5. 血淋淋的教训—将Vue项目打包成app的跨域问题
  6. OpenCV之图像平滑处理
  7. select完成单线程,多用户
  8. 23篇大数据系列(三)sql基础知识(史上最全,建议收藏)
  9. mysql如何备份数据库_MySQL如何备份数据库
  10. 计算机c盘用户名中文改英文,Win10电脑将中文登录用户名更改为英文名的方法
  11. 小学生计算机房的简笔画,小学生校园风景简笔画图片
  12. WEB打印控件Lodop的使用
  13. Android高手秘笈之View的挂载
  14. java hypot_java.lang.StrictMath.hypot()方法实例
  15. IndexedDB 学习笔记
  16. 正则表达式限制非中文字符输入
  17. ISME:华中农大李霞组发现大豆根际微生物组变化与根瘤菌共生效率的关系
  18. 为什么很多大学生甚至研究生抛弃专业去做码农呢?
  19. Java面试题及答案整理汇总(2023最新版)
  20. MongoDB安装BIN没有目录

热门文章

  1. 博贤科技管理系统漏洞0day
  2. PAT甲级真题 1064 完全二叉搜索树
  3. LaTex 制作简历
  4. 如何做项目开发周期评估
  5. latex 中文书籍常见命令
  6. php教程燕十八_2PHP 3小时光速入门视频教程【燕十八】
  7. 【DIY】打造一个六足蜘蛛机器人
  8. 【algods】4.树和二叉树、完全二叉树、满二叉树、二叉查找树、平衡二叉树、堆、哈夫曼树、散列表...
  9. perl中our的用法
  10. 亚马逊要求化妆品提交HRIPT / RIPT测试报告和COA证书详情解析