大家好!
这是我第一次发博客,如有优化空间,请各位在评论区大胆地提出建议!我会虚心接受的!
前言
最近一段时间,我亲爱的弟弟迷上了做数学题,天天缠着我妈出题给他,我妈被他搞得焦头烂额,便向我求助。我自告奋勇,要用Python帮她解决!
准备
解释器:Python 3.9.6(版本都没关系,是Python3.x就行)
IDE:VSCode
库:random、datetime、rich(为了美观)、pyinstaller
rich和pyinstaller是第三方库,所以要先在cmd中输入:
pip install rich
pip install pyinstaller
请一定要先看这篇文章来掌握rich库的用法。
等库下载完毕,就可以导入进去了。
import random
import datetime
from rich import print
导完了库,就可以开始掉头发写代码了
第一部分:初始化
我要在最后进行一个复盘,所以在前面先设好:
rightTimes = 0#答对题目数量
a = 0#数1
sign1 = 0#符号1
b = 0#数2
sign2 = 0#符号2
c = 0#数3
answer_right = 0#正确答案
answer_input = 0#输入答案
然后询问:
print("[bold magenta]请输入出题范围:[/bold magenta]",end = "")
size = int(input())
print("[bold magenta]请输入题目数量:[/bold magenta]",end = "")
times = int(input())
(因为rich我只导了print函数,所以input显示不出print可以显示出的漂亮的文本,我只能将print和input分开写)
这样,初始化就完毕了。
第二部分:创建算式
首先,我们要确定这个式子是两个数的还是三个数的:
control = random.randint(0,1)#控制变量control, 通过0和1来确定该算式为两数计算(0)还是三数计算(1)
然后生成数和符号:
a = random.randint(0,size)
sign1 = random.randint(0,1)
if sign1 == 0:
sign1 = "+"
else:
sign1 = "-"
if sign1 == "-":
if a == 0:
b = 0
else:
b = random.randint(0,a)
else:
b = random.randint(0,size)
if control == 1:
sign2 == random.randint(0,1)
if sign2 == 0:
sign2 = "+"
else:
sign2 = "-"
if sign1 == "-" and sign2 == "-":#控制c的范围
c = random.randint(0,a-b)
elif sign1 == "-" and sign2 == "+":
c = random.randint(0,size)
elif sign1 == "+" and sign2 == "-":
if a+b > size:
c = random.randint(0,size)
else:
c = random.randint(0,a+b)