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…
Reference in new issue