import random
opr = ['+','-','×','÷']
num = [1,2,3,4,5,6,7,8,9,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,2/3,2/5,2/7,2/9,3/4,3/5,3/7,3/8,4/5,4/7,4/9,5/6,5/7,5/8,5/9,6/7,7/8,7/9,8/9]
jg = '0'
m1 = input("Input the number of problems you want: ")
try:
m = int(m1)
n = 0
while n <= m:
fh = random.randint(0, 3)
from random import choice
n1 = choice(num)
n2 = choice(num)
rjg = 0
if fh == 0:
rjg = n1 + n2
elif fh == 1:
n1,n2 = max(n1,n2),min(n1,n2)
rjg = n1 - n2
elif fh == 2:
rjg = n1 * n2
elif fh == 3:
n1,n2 = max(n1,n2),min(n1,n2)
while n1 % n2 != 0:
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
n1,n2 = max(n1,n2),min(n1,n2)
rjg = int(n1 / n2)
print(n1, opr[fh], n2, '= ')
print('the right answer is', rjg)
n = n+1
if n > m:
input()
except ValueError as e:
print("Invalid input.Please reset the program and input a number to run it correctly.")
我的代碼仍不完全,沒有完全實現作業要求(http://www.rzrgm.cn/jiel/p/4810756.html)
目前我做到的有:控制題目生成的數量,計算出題目的答案,判斷輸入數據是否有意義并在無意義時提出指引。
沒能做到,但是理論上已經有思路的有:隨機運算符的數量(方法同我使用的隨機符號,可再添加一個隨機項,設置一個變量,每次循環過后該變量加一,直到與隨機得出的變量相等,循環停止),擴大數字的范圍(用編程語言實現對真分數的引入,設置變量控制數值范圍),對輸入答案和正確答案的評判(增加變量,使用=!判斷,輸出對錯即可),確保不會出現負數等(在寫出題目前判斷結果是否是真分數或正數,若不是則不寫出這個題目)
目前我認為自己不能做到的有:無法將題目,答案和統計對錯結果另存為TXT文件,支持一萬道題目的生成(數據有限)
posted on
浙公網安備 33010602011771號