使用Python为二年级的学生批量生成数学题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

一.使用Python为二年级的学生批量生成数学题

1.1 背景

我妹妹今年上二年级她的老师今天给他们布置了一项作业

从今天起到开学每天坚持做20道乘法和加减法混合运算。

在和我妹妹详细了解了他们的作业要求后得出下面的本次任务需求

需求总结

  1. 出题形式为a×b+/-c=?或者a+/-b×c=
  2. 乘法为一位数0~9
  3. 加减数范围为0~100
  4. 没有学过负数

二.解决思路及其代码

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:

输出效果如下

image-20230117004354809

三.排版及其打印

在上面我们得到了1500组随机生成的题目我们复制到word里进行排版方便打印操作

进入分栏功能将其调整为5栏。

image-20230117004645004

效果如下

image-20230117004732469

然后就可以打印了。

image-20230117004901730

我妹妹看这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()
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python