master
ZiYi 4 years ago
parent 5b5b06daeb
commit ea960226f8

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

@ -24,6 +24,8 @@ h1{
width: 50%; width: 50%;
position: relative; position: relative;
left: 25%; left: 25%;
border-top: 1px solid #bbcdc5;
border-left: 1px solid #bbcdc5;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
} }
ul{ ul{
@ -98,6 +100,9 @@ li{
height: 25px; height: 25px;
text-align: center; text-align: center;
border: #c2ccd0; border: #c2ccd0;
border-top: 1px solid #bbcdc5;
border-left: 1px solid #bbcdc5;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
} }
#info{ #info{

@ -151,8 +151,13 @@ $(document).ready(function () {
let counts = Object.keys(res).length; let counts = Object.keys(res).length;
for (let i = 0; i < counts; i++) { for (let i = 0; i < counts; i++) {
$("#ul").append("<li><span class='detials'>" + res[i].formula + " = " + "</span><input class='result' type='number'>" + "<span class='notice'></span></li>"); $("#ul").append("<li><span class='detials'>" + res[i].formula + " = " + "</span><input class='result' type='text'>" + "<span class='notice'></span></li>");
results.push(res[i].result); var tmp = res[i].result;
var reg = /\s+/g;
//console.log(typeof tmp + " " + tmp);
tmp = tmp.replace(reg, "");
//results.push(res[i].result);
results.push(tmp);
} }
$("#ul").slideToggle("slow"); $("#ul").slideToggle("slow");
@ -190,7 +195,7 @@ $(document).ready(function () {
if (flag_input) { if (flag_input) {
for (let i = 0; i < results.length; i++) { for (let i = 0; i < results.length; i++) {
console.log(inputs.eq(i).val()); console.log(inputs.eq(i).val());
if (inputs.eq(i).val() != "" && Number(inputs.eq(i).val()) == Number(results[i])) { if (inputs.eq(i).val() != "" && inputs.eq(i).val() == results[i]) {
if (language != -1) { if (language != -1) {
notices.eq(i).text("结果正确!"); notices.eq(i).text("结果正确!");
} else { } else {

Loading…
Cancel
Save