Update create.py

master
pwkev4itb 4 years ago
parent feac019d23
commit 6773f2be39

@ -1,5 +1,5 @@
import random import random
import re from cfractions import Fraction
def create_number(i): def create_number(i):
@ -41,7 +41,7 @@ def create_formula(flag_num):
result.insert(i+3,')') result.insert(i+3,')')
break break
print(result) # print(result)
formula = str(str(result).replace("'","").replace(',','')).replace('[','').replace(']','') formula = str(str(result).replace("'","").replace(',','')).replace('[','').replace(']','')
# 计算 # 计算
while len(result) != 1: while len(result) != 1:
@ -66,38 +66,52 @@ def create_formula(flag_num):
else: else:
if '*' in result: if '*' in result:
number_sign = result.index('*') number_sign = result.index('*')
print(result) # print(result)
number_num = float(result[number_sign - 1]) * float(result[number_sign + 1]) number_num = float(result[number_sign - 1]) * float(result[number_sign + 1])
result[number_sign] = number_num result[number_sign] = number_num
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign]) result.remove(result[number_sign])
print('*'+str(result)) # print('*'+str(result))
elif '÷' in result: elif '÷' in result:
number_sign = result.index('÷') number_sign = result.index('÷')
if result[number_sign + 1] == 0 or result[number_sign + 1] == '0': if result[number_sign + 1] == 0 or result[number_sign + 1] == '0':
create_formula(flag_num) create_formula(flag_num)
else: 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[number_sign] = number_num
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign]) result.remove(result[number_sign])
print('÷'+str(result)) # print('÷'+str(result))
elif '+' in result: elif '+' in result:
number_sign = result.index('+') number_sign = result.index('+')
number_num = float(result[number_sign - 1]) + float(result[number_sign + 1]) number_num = float(result[number_sign - 1]) + float(result[number_sign + 1])
result[number_sign - 1] = number_num result[number_sign - 1] = number_num
result.remove(result[number_sign]) result.remove(result[number_sign])
result.remove(result[number_sign]) result.remove(result[number_sign])
print('+'+str(result)) # print('+'+str(result))
elif '-' in result: elif '-' in result:
number_sign = result.index('-') number_sign = result.index('-')
number_num = float(result[number_sign - 1]) - float(result[number_sign + 1]) number_num = float(result[number_sign - 1]) - float(result[number_sign + 1])
result[number_sign - 1] = number_num result[number_sign - 1] = number_num
result.remove(result[number_sign]) result.remove(result[number_sign])
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(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) # print(formula)
return result,formula return result,formula
Loading…
Cancel
Save