使用Python为小学生批量生成数学题

👽发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。

一.使用Python为小学生批量生成数学题【第8篇—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()

这篇文章介绍了作者使用Python为二年级学生批量生成数学题的过程和代码。以下是对文章的总结:

五.总结

5.1背景和需求

作者小明的老师布置了一项作业,要求学生每天坚持做20道乘法和加减法混合运算题目。为了满足这个需求,作者决定使用Python批量生成符合要求的数学题。

5.2解决思路及代码

  1. 作者使用了random库来生成随机数,循环2000次以生成符合条件的式子。

  2. 在循环中,定义了变量包括被加或被减数、乘数1、乘数2、加减法运算符等。

  3. 使用条件判断,根据循环次数的奇偶性,生成不同形式的数学题。

  4. 控制台输出每道题目,同时判断是否有负数,将符合条件的题目写入文件。

5.3排版及打印

作者将生成的1500组题目复制到Word中,通过分栏功能排版成5栏,以便于打印。

5.4结果

通过生成的题目,作者成功满足了小明老师的作业要求,同时通过排版和打印,使得学生更方便地进行做题练习。

5.5总结

文章通过具体的代码和步骤,生动地展示了作者是如何使用Python解决实际问题的。这种方法不仅提高了效率,还能够满足特定的需求,为学生提供更有趣、个性化的学习体验。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
您好,我可以为您提供一个生成小学算题Python代码示例,供参考: ```python import random # 生成加法算题 def generate_addition_question(min_num, max_num, num_questions): questions = [] for i in range(num_questions): num1 = random.randint(min_num, max_num) num2 = random.randint(min_num, max_num - num1) question = f"{num1} + {num2} = " questions.append(question) return questions # 生成减法算题 def generate_subtraction_question(min_num, max_num, num_questions): questions = [] for i in range(num_questions): num1 = random.randint(min_num, max_num) num2 = random.randint(min_num, num1) question = f"{num1} - {num2} = " questions.append(question) return questions # 生成乘法算题 def generate_multiplication_question(min_num, max_num, num_questions): questions = [] for i in range(num_questions): num1 = random.randint(min_num, max_num) num2 = random.randint(min_num, max_num) question = f"{num1} x {num2} = " questions.append(question) return questions # 测试代码 addition_questions = generate_addition_question(1, 10, 10) print("加法算题:") for question in addition_questions: print(question) subtraction_questions = generate_subtraction_question(1, 10, 10) print("减法算题:") for question in subtraction_questions: print(question) multiplication_questions = generate_multiplication_question(1, 10, 10) print("乘法算题:") for question in multiplication_questions: print(question) ``` 这段代码可以生成指定数量和范围内的加、减、乘法算题,您可以根据实际需要进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一键难忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值