diff --git a/create.py b/create.py index 4387b5f..954985e 100644 --- a/create.py +++ b/create.py @@ -1,5 +1,5 @@ import random -import re +from cfractions import Fraction def create_number(i): @@ -41,7 +41,7 @@ def create_formula(flag_num): result.insert(i+3,')') break - print(result) + # print(result) formula = str(str(result).replace("'","").replace(',','')).replace('[','').replace(']','') # 计算 while len(result) != 1: @@ -66,38 +66,52 @@ def create_formula(flag_num): else: if '*' in result: number_sign = result.index('*') - print(result) + # print(result) number_num = 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]) - print('*'+str(result)) + # print('*'+str(result)) elif '÷' in result: number_sign = result.index('÷') if result[number_sign + 1] == 0 or result[number_sign + 1] == '0': create_formula(flag_num) else: - number_num = float(result[number_sign - 1]) / float(result[number_sign + 1]) + # print(result[number_sign - 1],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]) result.remove(result[number_sign]) - print('÷'+str(result)) + # print('÷'+str(result)) elif '+' in result: number_sign = result.index('+') number_num = 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)) + # print('+'+str(result)) elif '-' in result: number_sign = result.index('-') number_num = 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)) + # print('-'+str(result)) - result = str(result).replace('[','').replace(']','')[0:5] + result = str(result).replace('[','').replace(']','') + # print('------------') # print(result) + # print('+++++++++++++') + if 'Fraction' in result: + start = result.index('(') + center = result.index(',') + end = result.index(')') + if result[start + 1] == 0 or result[start + 1] == '0': + result = 0 + else: + result = str(result)[start+1:center] + '/' + str(result)[center+1:end] + # print(result) + # print(start,center,end) # print(formula) return result,formula \ No newline at end of file