文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-02-14 12:00

关注

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

1.1 背景

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

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

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

需求总结:

二.解决思路及其代码

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

然后就可以打印了。

我妹妹看这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批量生成数学题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯