zoukankan      html  css  js  c++  java
  • 速算 计应192(西) 第七组 李胜磊

    import random

    import docx

    import re

    import time

    #产生随机数字

    def Number(m,n):

    return str(random.randint(m,n))

    #产生随机运算符号

    def caculate_symbol():

    symbol =['+','-','×','÷']

    return str(random.choice(symbol))

    #生成题目列表

    def Test(target_two,target_three):

    subject_all =[]

    for i in range(0,target_three):

    subject = ""

    for x in range(0,target_two):

    symbol = caculate_symbol()

    subject +=(Number(k,j) + symbol)

    subject = subject[0:-1] + "="

    subject_all.append(subject)

    return subject_all

    #将答案保存在列表

    def Answer(subject_all):

    answer = []

    for i in subject_all:

    a = ""

    c = re.sub('×',"*",i)

    b = re.sub('÷',"/",c)

    question = re.sub("=","",b)

    a += i + str("%.1f" %(eval(question)))

    answer.append(a)

    return answer

    #保存为题目

    def Save_Test(subject_all):

    doc = docx.Document()

    doc.add_heading("加减乘除速算(答案保留1位小数)")

    doc.add_paragraph(' ')

    for i in subject_all:

    doc.add_paragraph(i)

    doc.save("速算试卷.docx")

    print("33[1;33;1m出题成功!33[0m")

    #保存答案

    def Save_answer(answer):

    doc = docx.Document()

    doc.add_heading("加减乘除速算答案(答案保留一位小数)")

    for i in answer:

    doc.add_paragraph(i)

    doc.save("速算试卷答案.docx")

    print("33[1;34;1m答案已给出!33[0m","33[1;31;1m题数为:%s个33[0m" %len(answer))

    #实现主要逻辑

    def run():

    try:

    target_one = int(input("请输入运算数字的位数:"))

    global j

    j = 1

    for i in range(0,target_one):

    j *=10

    global k

    k = j // 10

    target_two = int(input("请输入运算数字的个数:"))

    target_three = int(input("请输入题数:"))

    subject_all = Test(target_two,target_three)

    Save_Test(subject_all)

    answer = Answer(subject_all)

    Save_answer(answer)

    except:

    print("33[1;31;1m请按照提示正确输入!33[0m")

    if __name__ == '__main__':

    while True:

    run()

    time.sleep(0.05)

    quite = input("33[1;31;1m按q键退出(任意键继续出题!)33[0m")

    if quite == 'q':

    print("33[1;36;1m已退出程序!33[0m")

    break

    else:

    print("33[1;31;1m提示:继续出题会覆盖原来的题目33[0m")

    continue

    计应192(西)

    第七组

    李胜磊

  • 相关阅读:
    C#中的委托和事件(续)
    C# 中的委托和事件
    玩转JS插件系列
    gusfield
    线性规划
    后缀自动机
    bitset
    二维树状数组
    线段树合并
    求凸包
  • 原文地址:https://www.cnblogs.com/7930li/p/14632815.html
Copyright © 2011-2022 走看看