|
|
|
@ -3,18 +3,20 @@ from cfractions import Fraction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_number(i):
|
|
|
|
|
get_number = random.randint(0,int(i))
|
|
|
|
|
get_number = random.randint(0, int(i))
|
|
|
|
|
# print(get_number)
|
|
|
|
|
return get_number
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_sign():
|
|
|
|
|
sign = ['+','-','*','÷']
|
|
|
|
|
sign = ['+', '-', '*', '÷']
|
|
|
|
|
get_sign = random.choice(sign)
|
|
|
|
|
# print(get_sign)
|
|
|
|
|
return get_sign
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_formula(flag_num):
|
|
|
|
|
total = [3,5,7]
|
|
|
|
|
total = [3, 5, 7]
|
|
|
|
|
flag = random.choice(total)
|
|
|
|
|
# 生成算式 result数组
|
|
|
|
|
result = []
|
|
|
|
@ -37,19 +39,20 @@ def create_formula(flag_num):
|
|
|
|
|
if bracket == 1:
|
|
|
|
|
for i in range(length):
|
|
|
|
|
if result[i] == '+' or result[i] == '-':
|
|
|
|
|
result.insert(i-1,'(')
|
|
|
|
|
result.insert(i+3,')')
|
|
|
|
|
result.insert(i-1, '(')
|
|
|
|
|
result.insert(i+3, ')')
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
# print(result)
|
|
|
|
|
formula = str(str(result).replace("'","").replace(',','')).replace('[','').replace(']','')
|
|
|
|
|
formula = str(str(result).replace("'", "").replace(
|
|
|
|
|
',', '')).replace('[', '').replace(']', '')
|
|
|
|
|
# 计算
|
|
|
|
|
while len(result) != 1:
|
|
|
|
|
if '(' in result:
|
|
|
|
|
number_sign = result.index('(')+2
|
|
|
|
|
if result[number_sign] == '+':
|
|
|
|
|
number_num = result[number_sign - 1] + result[number_sign + 1]
|
|
|
|
|
result[number_sign -2] = number_num
|
|
|
|
|
result[number_sign - 2] = number_num
|
|
|
|
|
result.remove(result[number_sign - 1])
|
|
|
|
|
result.remove(result[number_sign - 1])
|
|
|
|
|
result.remove(result[number_sign - 1])
|
|
|
|
@ -67,7 +70,8 @@ def create_formula(flag_num):
|
|
|
|
|
if '*' in result:
|
|
|
|
|
number_sign = result.index('*')
|
|
|
|
|
# print(result)
|
|
|
|
|
number_num = int(float(result[number_sign - 1]) * float(result[number_sign + 1]))
|
|
|
|
|
number_num = int(
|
|
|
|
|
float(result[number_sign - 1]) * float(result[number_sign + 1]))
|
|
|
|
|
result[number_sign] = number_num
|
|
|
|
|
result.remove(result[number_sign - 1])
|
|
|
|
|
result.remove(result[number_sign])
|
|
|
|
@ -78,7 +82,8 @@ def create_formula(flag_num):
|
|
|
|
|
create_formula(flag_num)
|
|
|
|
|
else:
|
|
|
|
|
# print(result[number_sign - 1],result[number_sign + 1])
|
|
|
|
|
number_num = Fraction(int(result[number_sign - 1]) , int(result[number_sign + 1]))
|
|
|
|
|
number_num = Fraction(
|
|
|
|
|
int(result[number_sign - 1]), int(result[number_sign + 1]))
|
|
|
|
|
# print(number_num)
|
|
|
|
|
result[number_sign] = number_num
|
|
|
|
|
result.remove(result[number_sign - 1])
|
|
|
|
@ -86,20 +91,22 @@ def create_formula(flag_num):
|
|
|
|
|
# print('÷'+str(result))
|
|
|
|
|
elif '+' in result:
|
|
|
|
|
number_sign = result.index('+')
|
|
|
|
|
number_num = int(float(result[number_sign - 1]) + float(result[number_sign + 1]))
|
|
|
|
|
number_num = int(
|
|
|
|
|
float(result[number_sign - 1]) + float(result[number_sign + 1]))
|
|
|
|
|
result[number_sign - 1] = number_num
|
|
|
|
|
result.remove(result[number_sign])
|
|
|
|
|
result.remove(result[number_sign])
|
|
|
|
|
# print('+'+str(result))
|
|
|
|
|
elif '-' in result:
|
|
|
|
|
number_sign = result.index('-')
|
|
|
|
|
number_num = int(float(result[number_sign - 1]) - float(result[number_sign + 1]))
|
|
|
|
|
number_num = int(
|
|
|
|
|
float(result[number_sign - 1]) - float(result[number_sign + 1]))
|
|
|
|
|
result[number_sign - 1] = number_num
|
|
|
|
|
result.remove(result[number_sign])
|
|
|
|
|
result.remove(result[number_sign])
|
|
|
|
|
# print('-'+str(result))
|
|
|
|
|
|
|
|
|
|
result = str(result).replace('[','').replace(']','')
|
|
|
|
|
result = str(result).replace('[', '').replace(']', '')
|
|
|
|
|
# print('------------')
|
|
|
|
|
# print(result)
|
|
|
|
|
# print('+++++++++++++')
|
|
|
|
@ -110,8 +117,9 @@ def create_formula(flag_num):
|
|
|
|
|
if result[start + 1] == 0 or result[start + 1] == '0':
|
|
|
|
|
result = 0
|
|
|
|
|
else:
|
|
|
|
|
result = str(result)[start+1:center] + '/' + str(result)[center+1:end]
|
|
|
|
|
result = str(result)[start+1:center] + \
|
|
|
|
|
'/' + str(result)[center+1:end]
|
|
|
|
|
# print(result)
|
|
|
|
|
# print(start,center,end)
|
|
|
|
|
# print(formula)
|
|
|
|
|
return result,formula
|
|
|
|
|
return result, formula
|
|
|
|
|