-
Notifications
You must be signed in to change notification settings - Fork 0
/
小学计算题
33 lines (32 loc) · 1.31 KB
/
小学计算题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from math import *
from random import *
from fractions import *
choice='y'
while choice=='y': #循环以不断出题
equa=''
num=randint(2,5) #生成随机数以确定本次题目计算数的个数
a=[randint(1,100) for i in range(num)]
for i in range(num): #生成随机数以计算
a[i]=randint(1,100)
total=a[0]
for j in range(num-1):
flag=randint(1,4) #生成随机数以决定计算符号,如生成1则为加法,2为减法,以此类推
if flag==1:
total=total+a[j+1]
equa+=str(a[j])+'+'
elif flag==2:
total=total-a[j+1]
equa+=str(a[j])+'-'
elif flag==3:
total=total*a[j+1]
equa+=str(a[j])+'×'
elif flag==4:
total = Fraction(total, a[j+1])
equa+=str(a[j])+'÷'
equa+=str(a[j+1])+'='
ans=str(input(equa)) #输出题目并输入学生回答
if ans==str(total): #验证结果,如正确则输出回答正确,错误则输出回答错误并输出正确结果
print('回答正确')
else:
print("回答错误,正确答案为"+str(total))
choice=input("按y以继续出题,按n结束\n") #输入y或n以决定是否继续出题或结束出题