我使用 Python 的 Flask 框架来创建了小学四年级的数学试卷。以下是相应的代码:
from flask import Flask, render_template_string
import random
app = Flask(__name__)
# 生成加法题目
def generate_addition_questions(num_questions):
questions = []
for _ in range(num_questions):
num1 = random.randint(1, 100)
num2 = random.randint(1, 100)
question = f"{num1} + {num2} = "
answer = num1 + num2
questions.append((question, answer))
return questions
# 生成减法题目
def generate_subtraction_questions(num_questions):
questions = []
for _ in range(num_questions):
num1 = random.randint(1, 100)
num2 = random.randint(1, num1)
question = f"{num1} - {num2} = "
answer = num1 - num2
questions.append((question, answer))
return questions
# 生成乘法题目
def generate_multiplication_questions(num_questions):
questions = []
for _ in range(num_questions):
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)
question = f"{num1} × {num2} = "
answer = num1 * num2
questions.append((question, answer))
return questions
# 生成除法题目
def generate_division_questions(num_questions):
questions = []
for _ in range(num_questions):
num2 = random.randint(1, 10)
answer = random.randint(1, 10)
num1 = num2 * answer
question = f"{num1} ÷ {num2} = "
questions.append((question, answer))
return questions
@app.route('/')
def math_paper():
# 每种类型题目的数量
num_addition = 5
num_subtraction = 5
num_multiplication = 5
num_division = 5
# 生成所有题目
addition_questions = generate_addition_questions(num_addition)
subtraction_questions = generate_subtraction_questions(num_subtraction)
multiplication_questions = generate_multiplication_questions(num_multiplication)
division_questions = generate_division_questions(num_division)
# 合并所有题目
all_questions = addition_questions + subtraction_questions + multiplication_questions + division_questions
random.shuffle(all_questions)
# 生成 HTML 内容
html = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小学四年级数学试卷</title>
</head>
<body>
<h1>小学四年级数学试卷</h1>
<ol>
"""
for i, (question, _) in enumerate(all_questions, start=1):
html += f"<li>{question}</li>"
html += """
</ol>
</body>
</html>
"""
return render_template_string(html)
if __name__ == '__main__':
app.run(debug=True)
此代码包含以下部分:
1. 定义四个函数,分别用于生成加法、减法、乘法和除法题目。
2. 定义一个 Flask 路由,生成各种类型的题目,将它们合并并打乱顺序。
3. 生成一个 HTML 页面,其中包含试卷的题目。 你可以将上述代码保存为 `math_paper.py`,然后在终端中运行以下命令:
```bash python math_paper.py ```
接着,在浏览器中打开 `http://127.0.0.1:5000/` 就能看到生成的试卷。