victory的博客

长安一片月,万户捣衣声

0%

random | python出数学练习题

python出数学练习题

实现代码:

# import random
#
# for i in range(5):
#     num1 = random.randint(1, 9)
#     num2 = random.randint(1, 9)
#     print(f"{num1} + {num2} = ")


# 加法、乘法题
import random
data = []  # 储存题目的列表
group = []  # 中转列表
while len(data) < 20:  # 题目个数,20行x4列共80个题,刚好放入word文档中的1页
    num1 = random.randint(0, 9)  # 随机整数1,从0-9中选取
    num2 = random.randint(0, 9)  # 随机整数2,从0-9中选取
    group.append(f"{num1} + {num2} = ")  # 数据放入中转列表
    if len(group) == 4:  # 按四道题分一组
        data.append(group)  # 数据放入总列表
        group = []  # 清空中转列表
print(data)

# # 减法题
# import random
#
# data = []
# group = []
# while len(data) < 20:
#     num1 = random.randint(1, 9)
#     num2 = random.randint(1, 9)
#     if num1 > num2:
#         group.append(f"{num1} - {num2} = ")
#         if len(group) == 4:
#             data.append(group)
#             group = []
#
# # print(data)

# # 除法题
# import random
#
# data = []  # 储存题目的列表
# group = []  # 中转列表
# while len(data) < 20:
#     num1 = random.randint(1, 19)
#     num2 = random.randint(1, 19)
#     if num1 >= num2 and num1 % num2 == 0:
#         group.append(f"{num1} ÷ {num2} = ")  # 数据放入中转列表
#         if len(group) == 4:  # 按四道题分一组
#             data.append(group)  # 数据放入总列表
#             group = []  # 清空中转列表
#
# print(data)

# 输出到word文件
def To_word(data, file_name):
    """
    data:需要传入的列表
    file_name:word文件的文件名
    """
    from docx import Document
    from docx.shared import Pt  # 用于设定字体大小(磅值)

    doc = Document()
    for i in data:
        # print(i)
        row = "\t\t".join(i)
        # print(row)
        doc.add_paragraph(row)
    # 设置字号
    for para in doc.paragraphs:
        for run in para.runs:
            run.font.size = Pt(16)  # 文字大小磅值
    doc.save(f"{file_name}.docx")

To_word(data, "加法题")
# To_word(data, "减法题")
# To_word(data, "乘法题")
# To_word(data, "除法题")