使用Python为二年级的学生批量生成数学题
2023-02-26 09:50:23 时间
文章目录
一.使用Python为二年级的学生批量生成数学题
1.1 背景
我妹妹今年上二年级,她的老师今天给他们布置了一项作业:
从今天起到开学,每天坚持做20道乘法和加减法混合运算。
在和我妹妹详细了解了他们的作业要求后,得出下面的本次任务需求:
需求总结:
- 出题形式为a×b+/-c=?或者a+/-b×c=?
- 乘法为一位数(0~9)
- 加减数范围为(0~100)
- 没有学过负数
二.解决思路及其代码
1.先引入random库,用于生成随机数:
import random
2.让其循环2000次,以便于生成符合条件的式子:
for i in range(2000):
3.变量定义:
maxnum:被加或者被减数。
minnum1:乘数1。
minnum2:乘数2。
fu1:数组,用于存储,加法还是减法。
funumber:随机生成下标,用于随机生成加号还是减号。
maxnum = random.randint(0, 99)
minnum1=random.randint(0, 9)
minnum2 = random.randint(0, 9)
fu1=["-","+"]
funumber=random.randint(0, 1)
4.因为有俩种形式:出题形式为a×b+/-c=?或者a+/-b×c=?
我使用偶数和奇数来区分他们。
if i % 2 ==0 :
5.控制台输出一下,现在的样式:
print(minnum1,"×",minnum2,fu1[funumber],maxnum,"=" )
6.由于没有学过负数,需要排除负数的情况:
lastnumber=0
lastnumber为最后的结果。
7.判断一下减号和加号的情况,其实区分负数无需算加法,但是方便之后出答案,还是写了一下:
if fu1[funumber] == "-" :
lastnumber=minnum1*minnum2-maxnum
if fu1[funumber] == "+":
lastnumber = minnum1 * minnum2 + maxnum
8.写一个字符串存放字符,data,将本次的循环结果放入。
data=str(minnum1)+"×"+str(minnum2)+str(fu1[funumber])+str(maxnum)+"="
print(data)
9.判断一下如果最后的结果大于等于0,说明没有负数。符合本次的要求,对其进行存储操作。
if lastnumber>=0:
f = open("zhuke.txt", "a")
f.write(data+"\n")
f.close()
10.这是前面的我使用偶数和奇数来区分他们。奇数奇数形式改变了,思路还是没有变化的。就不详细写了。
else:
输出效果如下:
三.排版及其打印
在上面,我们得到了1500组随机生成的题目,我们复制到word里进行排版,方便打印操作:
进入分栏功能,将其调整为5栏。
效果如下:
然后就可以打印了。
我妹妹看这1500道题目高兴坏了?,她会不会想有这样一个关心她的哥哥真好[狗头]。
四.本文源码
import random
for i in range(2000):
maxnum = random.randint(0, 99)
minnum1=random.randint(0, 9)
minnum2 = random.randint(0, 9)
fu1=["-","+"]
funumber=random.randint(0, 1)
if i % 2 ==0 :
print(minnum1,"×",minnum2,fu1[funumber],maxnum,"=" )
lastnumber=0
if fu1[funumber] == "-" :
lastnumber=minnum1*minnum2-maxnum
if fu1[funumber] == "+":
lastnumber = minnum1 * minnum2 + maxnum
data=str(minnum1)+"×"+str(minnum2)+str(fu1[funumber])+str(maxnum)+"="
print(data)
if lastnumber>=0:
f = open("zhuke.txt", "a")
f.write(data+"\n")
f.close()
else:
print(maxnum, fu1[funumber],minnum1, "×", minnum2, "=" )
lastnumber=0
if fu1[funumber] == "-" :
lastnumber=maxnum - minnum1 * minnum2
if fu1[funumber] == "+":
lastnumber = maxnum + minnum1 * minnum2
data = str(maxnum) +str( fu1[funumber]) + str(minnum1) + "×"+ str(minnum2) + "="
print(data)
if lastnumber >= 0:
f = open("zhuke.txt", "a")
f.write(data + "\n")
f.close()
相关文章
- 基于Python的人脸识别考勤监控
- Python答题游戏
- Python调用百度API实现图像识别
- Python全栈疫情分析项目
- Python-基础-if语句快速入门
- Python-基础-循环语句快速入门
- Python-GUI签名
- 【2】VScode 搭建python和tensorflow环境
- python 简易时钟
- 【1】windows系统如何安装后缀是whl的python库
- 【2】超级详细Python-matplotlib画图,手把手教你画图!(线条颜色、大小、线形、标签)
- 【4】python读写文件操作---详细讲解!
- 【2】Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法!
- 【编写环境一】遇到常见python函数处理方式
- 【编写环境二】python库scipy.stats各种分布函数生成、以及随机数生成【泊松分布、正态分布等】
- Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图
- 强化学习技巧三:Python多进程
- 强化学习技巧五:numba提速python程序
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
- 【8】python_matplotlib改变横坐标和纵坐标上的刻度(ticks)、sagemath-list_plot()调整图例(legend)中点的数量、Matplotlib画各种论文图