Update create.py

master
pwkev4itb 4 years ago
parent 8384e386ef
commit 5bbcc87f4f

@ -1,12 +1,104 @@
import random
import re
def create_number():
get_number = random.randint(0,100)
print(get_number)
get_number = random.randint(0,20)
# print(get_number)
return get_number
def create_sign():
sign = ['+','-','*','/']
sign = ['+','-','*','÷']
get_sign = random.choice(sign)
print(get_sign)
return get_sign
# print(get_sign)
return get_sign
def create_formula():
total = [3,5,7]
flag = random.choice(total)
# 生成算式 result数组
result = []
for i in range(flag):
# print(i)
if i % 2 == 0:
number = create_number()
result.append(number)
else:
sign = create_sign()
if (i+1) != flag:
result.append(sign)
# print(result)
# print("加入括号")
length = len(result)
brackets = [0, 1]
bracket = random.choice(brackets)
if length > 3:
# 随机加入括号
if bracket == 1:
for i in range(length):
if result[i] == '+' or result[i] == '-':
result.insert(i-1,'(')
result.insert(i+3,')')
break
# print(result)
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.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
elif result[number_sign] == '-':
number_num = result[number_sign - 1] - result[number_sign + 1]
result[number_sign - 2] = number_num
result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1])
else:
if '*' 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(result)
elif '÷' in result:
number_sign = result.index('÷')
if result[number_sign + 1] == 0 or result[number_sign + 1] == '0':
create_formula()
else:
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(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(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(result)
result = str(result).replace('[','').replace(']','')[0:5]
print(result)
# print(formula)
return result,formula
create_formula()
Loading…
Cancel
Save