随机出计算题,并规定时间,timer计时器用法

二年级小学生计算能力测试系统

设计一个程序,用来实现5分钟100道计算题测试,它具有以下功能:

提供100道加、减、乘或除四种基本算术运算的题目;

运算数和计算结果都不能超过100;

练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否;

设置计时器,5分钟后测试结束;(100道题写成时间不到5也中也结束考试)

给出提示信息:多少时间完成多少题,正确的多少道,错误的多少道。(有能力的同学也可以给出评定等级:优良中差,标准自己设定)

timer 计时器用法
Timer(interval, function, args=[], kwargs={})
  interval: 指定的时间
  function: 要执行的方法
  arg:方法的参数

# -*- coding: utf-8 -*-
# @Time : 2020/10/25 14:42
# @Author : 李洋
# @File : computer text.py
# @Project : demo

import random
import time
import datetime

number1 = 0 #随机数1
number2 = 0 #随机数2
op = 0      #运算符
answer = 0  #运算结果

#准备随机数和运算符
def number_op():
    global number1,number2,op
    op = random.choice(['+', '-', '*', '/'])
    if(op == '/'):
        number1 = random.randint(0, 100)
        number2 = random.randint(1, 100)
    else:
        number1 = random.randint(0, 100)
        number2 = random.randint(0, 100)

#计算结果
def operator(op):
    global answer
    if(op == '+'):
        answer = number1 + number2
    elif(op =='-'):
        answer = number1 - number2
    elif(op =='*'):
        answer = number1 * number2
    elif(op =='/'):
        answer = round(number1 / number2 , 1)
    return answer

#计时开始
def time_star():
    starttime = datetime.datetime.now() #记录当前时间
    # long running
    # endtime = datetime.datetime.now()
    # print ((endtime - starttime).seconds)
    return starttime

#计时结束
def time_end(starttime):
    # time.sleep(250)
    endtime = datetime.datetime.now()
    print((endtime - starttime).seconds)
    return
    # printgrade(right,count)


#打印成绩
def printgrade(right,count):
    print('')
    print('考试结束!', end='')
    print('100道题,完成了{}道题,其中答对{}道,完成率为{}%,正确率为{:.2f}%'.format(count, right, count, right / count * 100))
    if (right >= 90):
        print('成绩为A+')
    elif (right >= 80):
        print('成绩为A')
    elif (right >= 70):
        print('成绩为B')
    elif (right >= 60):
        print('成绩为C')
    elif (right < 60):
        print('成绩为d')


#主要函数,打印题目
def main():
    count = 0  #已完成的题数
    right = 0  #答对的题数
    starttime = time_star()
    while(count<100):
        number_op()  #获取随机计算数
        operator(op) #获得运算数
        if(answer<=100):
            print("({}) {}{}{}= ".format(count+1 , number1,op,number2),end='')
            endtime = datetime.datetime.now()
            time = (endtime-starttime).seconds
            #判断时间是否超时
            if(time<250):
                result = input()
                # print(answer)
                # print(result)
                # print('对',right)
                if(result == str(answer)):
                    right += 1
                    count += 1
                else:
                    print('X')
                    count += 1
            else:
                printgrade(right,count)
                break
        else:
            continue
    # right = right*10
    printgrade(right,count)





if __name__ == '__main__':
    main()


    # starttime = time_star()
    # while 1:


        # while float(time) < 250:
        #     test()
        # break
    # #获取当前时间
    # time1 = threading.Thread(target=time_star)
    # # print(time1)
    # starttime = time_star()
    # # print(starttime)
    # time1.start()
    #
    #
    # print('开始')
    # # 开始答题
    # demo = threading.Thread(target=test)
    # list = test()
    #
    # #计时开始
    # time2 = threading.Thread(target=time_end(starttime))
    # time2.start()


    # list = [60,100]

    #打印成绩
    # printgrade(list[0],list[1])

    # print('开始')
    # list = test()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值