给Coding... ... ...的代码改进

import random
import datetime
from rich import print
 
rightTimes = 0#答对题目数量
answer_right = 0#正确答案
answer_input = 0#输入答案
sign = ['+','-']   #改进2,开头直接加符号列表
 
size = int(input("[bold magenta]请输入出题范围:[/bold magenta]",end = ""))   #改进1,input里面可以加前缀
times = int(input("[bold magenta]请输入题目数量:[/bold magenta]",end = ""))
print()
print("----------------------------------------------------------------")
print("开始答题")
start = datetime.datetime.now()
 
for i in range(times):
    sign2 = "+"
    c  = 0   
    control = random.randint(0,1)#控制变量control, 通过0和1来确定该算式为两数计算(0)还是三数计算(1)
    a = random.randint(0,size)
    sign1 = random.choice(sign)
    if sign1 == "-":
        if a == 0:
            b = 0
        else:
            b = random.randint(0,a)
    else:
        b = random.randint(0,size)
    if control == 1:
        sign2 = random.choice(sign)
    if sign1 == "-" and sign2 == "-":
        c = random.randint(0,a-b)
    elif sign1 == "+" and sign2 == "-":
        if a+b > size:
            c = random.randint(0,size)
        else:
            c = random.randint(0,a+b)
    else:
        c = random.randint(0,size)
    answer_right = eval(str(a)+sign1+str(b)+sign2+str(c))   #改进3,一步出答案
    print(i+1,"[bold blue]|[/bold blue]",a,sign1,b,end = "")
    if control == 1:
        print(sign2,c,end = "")
    print("=",end = "")
    unRight = True
    while unRight:
        answer_input = input()
        if answer_input == '\n':
            print("请不要输入回车! 请再次输入!")
        try:
            answer_input = int(answer_input)
            unRight = False
        except ValueError :
            print("请不要输入字符! 请再次输入!")
        if unRight:
            print(i+1,"[bold blue]|[/bold blue]",a,sign1,b,end = "")
            if control == 1:
                print(sign2,c,end = "")    
            print("=",end = "")
    if(answer_input == answer_right):
        print("[bold green]正确[/bold green]")
        rightTimes += 1
    else: 
        print("[bold red]错误[/bold red]")

end = datetime.datetime.now()
print("你一共答了",times,"题, 答对了",rightTimes,"题, 答错了",times-rightTimes,"题, 共用时",end = "")
if end.hour - end.hour != 0:
    print(end.hour - start.hour,"小时",end.minute - start.minute,"分钟",end = "")
if end.minute > start.minute:
    print(end.second - start.second,"秒。",end = "")
elif end.hour - start.hour == 0 and end.minute - start.minute != 0:
    print(end.minute - start.minute,"分钟",end = "")
    if end.minute > start.minute:
        print(end.second - start.second,"秒。",end = "")
elif end.hour - start.hour == 0 and end.minute - start.minute == 0 and end.second - start.second != 0:
    print(end.second - start.second,"秒。",end = "")
print()
if rightTimes == times:
    print("[bold green]你真厉害![/bold green]")
elif float(times*0.4) <= rightTimes < times:
    print("[bold yellow]很不错哦![/bold yellow]")
else:
    print("[bold red]还需努力![/bold red]")
print()
print("----------------------------------------------------------------")
print("程序已结束")
Stop = input()

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值