Upload 3 files
Browse files- a.txt +1 -0
- main.py +19 -5
- templates/index.html +13 -5
a.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
234
|
main.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
import sympy
|
2 |
from flask import Flask, render_template, request
|
3 |
import re
|
|
|
4 |
|
5 |
app = Flask(__name__)
|
6 |
|
@@ -10,9 +11,23 @@ def home():
|
|
10 |
return render_template('index.html')
|
11 |
|
12 |
|
13 |
-
@app.route('/factorize', methods=['
|
14 |
def factorize():
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
if re.match(r'^[a-zA-Z0-9+\-*/()]+$', expression):
|
17 |
expression = re.sub(r'([A-Za-z])([A-Za-z])', r'\1*\2', expression)
|
18 |
expression = re.sub(r'([0-9])([A-Za-z])', r'\1*\2', expression)
|
@@ -26,12 +41,11 @@ def factorize():
|
|
26 |
symbol_dict = dict(zip(variables, symbols))
|
27 |
expr = sympy.sympify(expression, locals=symbol_dict)
|
28 |
factors = sympy.factor(expr)
|
29 |
-
result = factors
|
30 |
return render_template('index.html', result=result)
|
31 |
except Exception:
|
32 |
error_message = "*表示乘法,**表示乘方,括号统一使用小括号,数字与字母中间(或字母与字母中间)的乘号可以省略。"
|
33 |
return render_template('index.html', error=error_message)
|
34 |
|
35 |
-
|
36 |
if __name__ == '__main__':
|
37 |
-
app.run(host='0.0.0.0', port=
|
|
|
1 |
import sympy
|
2 |
from flask import Flask, render_template, request
|
3 |
import re
|
4 |
+
from sympy import latex
|
5 |
|
6 |
app = Flask(__name__)
|
7 |
|
|
|
11 |
return render_template('index.html')
|
12 |
|
13 |
|
14 |
+
@app.route('/factorize', methods=['GET'])
|
15 |
def factorize():
|
16 |
+
# 读取文件
|
17 |
+
with open('a.txt', 'r') as file:
|
18 |
+
lines = file.readlines()
|
19 |
+
|
20 |
+
|
21 |
+
# 加1并写回文件
|
22 |
+
with open('a.txt', 'w') as file:
|
23 |
+
for line in lines:
|
24 |
+
try:
|
25 |
+
num = int(line.strip()) + 1 # 转换为整数并加1
|
26 |
+
file.write(str(num) + '\n') # 写回文件
|
27 |
+
except ValueError: # 忽略无法转换为整数的行
|
28 |
+
file.write(line)
|
29 |
+
expression = request.args.get('expression')
|
30 |
+
print(expression)
|
31 |
if re.match(r'^[a-zA-Z0-9+\-*/()]+$', expression):
|
32 |
expression = re.sub(r'([A-Za-z])([A-Za-z])', r'\1*\2', expression)
|
33 |
expression = re.sub(r'([0-9])([A-Za-z])', r'\1*\2', expression)
|
|
|
41 |
symbol_dict = dict(zip(variables, symbols))
|
42 |
expr = sympy.sympify(expression, locals=symbol_dict)
|
43 |
factors = sympy.factor(expr)
|
44 |
+
result = latex(factors)
|
45 |
return render_template('index.html', result=result)
|
46 |
except Exception:
|
47 |
error_message = "*表示乘法,**表示乘方,括号统一使用小括号,数字与字母中间(或字母与字母中间)的乘号可以省略。"
|
48 |
return render_template('index.html', error=error_message)
|
49 |
|
|
|
50 |
if __name__ == '__main__':
|
51 |
+
app.run(host='0.0.0.0', port=5001)
|
templates/index.html
CHANGED
@@ -2,14 +2,16 @@
|
|
2 |
<html lang="en">
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
|
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
<title>因式分解</title>
|
7 |
-
<link rel="stylesheet" type="text/css" href="https://
|
8 |
</head>
|
|
|
9 |
<body>
|
10 |
<div class="container">
|
11 |
<h1>因式分解</h1>
|
12 |
-
<form method="
|
13 |
<input type="text" name="expression" placeholder="请输入一个代数式" required>
|
14 |
<button type="submit">因式分解</button>
|
15 |
</form>
|
@@ -18,7 +20,10 @@
|
|
18 |
<div class="result-container">
|
19 |
<div class="result">
|
20 |
<h2>因式分解结果:</h2>
|
21 |
-
<p
|
|
|
|
|
|
|
22 |
</div>
|
23 |
</div>
|
24 |
{% endif %}
|
@@ -35,7 +40,10 @@
|
|
35 |
<p><a href=https://smf.lanzout.com/iOtyY13ixk9a>下载移动端</a>密码:bizt</p>
|
36 |
<div class="button-container">
|
37 |
<button onclick="openAbout()">关于</button>
|
38 |
-
<button onclick="openUse()">使用说明</button>
|
|
|
|
|
|
|
39 |
</div>
|
40 |
</div>
|
41 |
|
@@ -57,7 +65,7 @@
|
|
57 |
<p>*表示乘法,**表示乘方,括号统一使用小括号,数字与字母中间(或字母与字母中间)的乘号可以省略。</p>
|
58 |
<p>开根号使用sqrt(),三次根式使用cbrt(),更多函数请查看python官方文档</p>
|
59 |
<p>如果还有任何问题,请点击按钮联系我们。</p>
|
60 |
-
<a href="mailto:sh_szh2010@outlook.
|
61 |
<button>点击这里</button>
|
62 |
</a>
|
63 |
<p>注:为了以防家长吐槽,我们将原来的二次元壁纸换成了必应每日更新壁纸。</p>
|
|
|
2 |
<html lang="en">
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
+
<meta http-equiv="Cache-Control" content="max-age=36000">
|
6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7 |
<title>因式分解</title>
|
8 |
+
<link rel="stylesheet" type="text/css" href="https://lightsdark.com/style-project.css">
|
9 |
</head>
|
10 |
+
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
|
11 |
<body>
|
12 |
<div class="container">
|
13 |
<h1>因式分解</h1>
|
14 |
+
<form method="GET" action="/factorize">
|
15 |
<input type="text" name="expression" placeholder="请输入一个代数式" required>
|
16 |
<button type="submit">因式分解</button>
|
17 |
</form>
|
|
|
20 |
<div class="result-container">
|
21 |
<div class="result">
|
22 |
<h2>因式分解结果:</h2>
|
23 |
+
<p>$$ {{ result|safe }} $$</p>
|
24 |
+
<script type="text/javascript">
|
25 |
+
MathJax.Hub.Queue(["Typeset", MathJax.Hub, "{{ result|safe }}"]);
|
26 |
+
</script>
|
27 |
</div>
|
28 |
</div>
|
29 |
{% endif %}
|
|
|
40 |
<p><a href=https://smf.lanzout.com/iOtyY13ixk9a>下载移动端</a>密码:bizt</p>
|
41 |
<div class="button-container">
|
42 |
<button onclick="openAbout()">关于</button>
|
43 |
+
<!-- <button onclick="openUse()">使用说明</button> -->
|
44 |
+
<a href="https://sway.office.com/EMKfxo4iLHzBaa6A?ref=Link">
|
45 |
+
<button>使用说明</button>
|
46 |
+
</a>
|
47 |
</div>
|
48 |
</div>
|
49 |
|
|
|
65 |
<p>*表示乘法,**表示乘方,括号统一使用小括号,数字与字母中间(或字母与字母中间)的乘号可以省略。</p>
|
66 |
<p>开根号使用sqrt(),三次根式使用cbrt(),更多函数请查看python官方文档</p>
|
67 |
<p>如果还有任何问题,请点击按钮联系我们。</p>
|
68 |
+
<a href="mailto:sh_szh2010@outlook.com">
|
69 |
<button>点击这里</button>
|
70 |
</a>
|
71 |
<p>注:为了以防家长吐槽,我们将原来的二次元壁纸换成了必应每日更新壁纸。</p>
|