python 生成100题随机数加减乘除,比如3*9+256或865-81/9这类算式,其中乘除不能有余数,加减不能有负数,结果为大于0小于1000的整数,然后生成一份题目表格,保存为xlsx,并且每25题为一列,每一列题目后面是算式结果
时间: 2024-05-07 07:22:56 浏览: 117
python实现随机出题(加减乘除)
5星 · 资源好评率100%
好的,这个需求可以通过 Python 的 random 和 openpyxl 库来实现。首先,我们需要使用 random 库生成随机数,并通过循环遍历生成100道算式。接着,我们需要使用 openpyxl 库来创建并写入 Excel 文件中。
以下是实现代码:
```python
import random
from openpyxl import Workbook
# 生成随机数
def generate_number():
return random.randint(1, 99)
# 生成运算符
def generate_operator():
operators = ['+', '-', '*', '/']
return random.choice(operators)
# 验证算式是否符合要求
def validate_expression(exp):
try:
result = eval(exp)
if result < 0 or result >= 1000 or result % 1 != 0:
return False
except:
return False
return True
# 生成算式
def generate_expression():
while True:
num1, num2, num3 = generate_number(), generate_number(), generate_number()
op1, op2 = generate_operator(), generate_operator()
exp = f'{num1} {op1} {num2} {op2} {num3}'
if validate_expression(exp):
return exp, int(eval(exp))
# 生成100道算式
expressions = []
for i in range(100):
exp, result = generate_expression()
expressions.append((exp, result))
# 写入Excel文件
wb = Workbook()
ws = wb.active
for i, (exp, result) in enumerate(expressions):
row, col = divmod(i, 25)
col *= 2
ws.cell(row+1, col+1, exp)
ws.cell(row+1, col+2, result)
wb.save('题目表格.xlsx')
```
在上述代码中,我们通过 generate_number() 函数生成1-99之间的随机数,generate_operator() 函数生成运算符,validate_expression() 函数验证算式是否符合要求,generate_expression() 函数生成符合要求的算式,并使用循环遍历生成100道算式。
接着,我们使用 openpyxl 库创建并写入 Excel 文件。我们首先通过 Workbook() 函数创建工作簿(Workbook),然后通过 active 属性获取当前工作表(Worksheet),接着使用循环将100道算式写入 Excel 文件中。我们将一列分为两个单元格,一个单元格用来显示算式,另一个单元格用来显示结果。
最后,我们通过 save() 方法保存 Excel 文件。
运行代码后,将在同级目录下生成一个名为“题目表格.xlsx”的文件,其中包含了100道随机生成的算式。
阅读全文