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(西)

    第七组

    李胜磊

  • 相关阅读:
    call/cc 总结 | Scheme
    用call/cc合成所有的控制流结构
    词法作用域 vs 动态作用域
    数论部分第二节:埃拉托斯特尼筛法
    1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】
    C++面向对象作业1
    数论部分第一节:素数与素性测试【详解】
    基数排序与桶排序,计数排序【详解】
    计蒜客:百度的科学计算器(简单)【python神解】
    优质免费在线学习网站【自用】
  • 原文地址:https://www.cnblogs.com/7930li/p/14632815.html
Copyright © 2011-2022 走看看