用Python给小宝做的数学四则运算_算术口算练习程序(后添加减乘除)

来源:互联网 发布:电信网络制式是cdma 编辑:程序博客网 时间:2024/04/28 16:15

最近着迷上了 Python

Ruby没空搞…

用Python给小宝做的数学算数口算练习程序(2015年1月添加四则运算)!

给小宝做的口算游戏:



import string
import random
input=11
nums=10
num=0
righ1t=0 #分数#
flagwrong=0 #没错过
print "\e[1;34mThis text is bold blue.\e[0m\n"
print "一共有%d道题目:"%(num)
print "\e[33;45;1mBold yellow on magenta.\e[0m\n";
while True:
    flagwrong=0
    if num==nums:
        print "一共(1次就)做对了%d道/%d道 题目"%(righ1t,nums),
        if righ1t==10:
            print "你真棒啊! 100分啊!!!"
        elif righ1t>=8:
            print "你不错啊,80分以上啊!!!"
        else:
            print "还要加油哦!"
        break;
    else:
        num=num+1
    x=random.randint(1, 100)    #100以内的数字
    y=random.randint(1, 10)
    print ""

    symbol=random.randint(0,4)
    #symbol=3                    #测试除法#
    if 0==symbol:        #加法
        # 内循环-做题
        print "第%d题:%d+%d="%(num,x,y),
        input=raw_input()
        intp=string.atoi(input)
        print intp
        while intp!=(x+y):
            print "不对! %d+%d不等于%d"%(x,y,intp)
            flagwrong=1; #错过一次,就不能做成绩(分数)的增长了
            print "再算一遍,第%d题:%d+%d="%(num,x,y),
            input=raw_input()
            intp=string.atoi(input)
            if intp==x+y:
                break;
            continue;
        if intp == (x+y):
            print "对了! %d+%d就是等于%d"%(x,y,intp)
            if flagwrong==0:
                righ1t=righ1t+1
            continue;
        break;

    elif 1==symbol:        #减法
        # 内循环-做题
        if x<y: x01temp=x; x=y; y=x01temp;
        print "第%d题:%d-%d="%(num,x,y),
        input=raw_input()
        intp=string.atoi(input)
        print intp
        while intp!=(x-y):
            print "不对! %d-%d不等于%d"%(x,y,intp)
            flagwrong=1; #错过一次,就不能做成绩(分数)的增长了
            print "再算一遍,第%d题:%d-%d="%(num,x,y),
            input=raw_input()
            intp=string.atoi(input)
            if intp==x-y:
                break;
            continue;
        if intp == (x-y):
            print "对了! %d-%d就是等于%d"%(x,y,intp)
            if flagwrong==0:
                righ1t=righ1t+1
            continue;
        break;

    elif 2==symbol:        #乘法
        # 内循环-做题
        #if x<y: x01temp=x; x=y; y=x01temp;
        print "第%d题:%d*%d="%(num,x,y),
        input=raw_input()
        intp=string.atoi(input)
        print intp
        while intp!=(x*y):
            print "不对! %d*%d不等于%d"%(x,y,intp)
            flagwrong=1; #错过一次,就不能做成绩(分数)的增长了
            print "再算一遍,第%d题:%d*%d="%(num,x,y),
            input=raw_input()
            intp=string.atoi(input)
            if intp==x*y:
                break;
            continue;
        if intp == (x*y):
            print "对了! %d*%d就是等于%d"%(x,y,intp)
            if flagwrong==0:
                righ1t=righ1t+1
            continue;
        break;

    elif 3==symbol:        #除法
        # 内循环-做题
        if x<y: x01temp=x; x=y; y=x01temp;
        print "第%d题:%d/%d="%(num,x,y),
        print "商?:",
        
        input=raw_input()
        intp=string.atoi(input)
        print "余数是?:",
        input2yushu=raw_input()
        intp2yushu=string.atoi(input2yushu)

        print "商:",
        print intp,
        print "余数是:",
        print intp2yushu
        
        while x !=( ( intp * y)+intp2yushu ):
            print "不对! %d/%d不等于商%d,余%d  !"%(x,y,intp,intp2yushu)
            flagwrong=1; #错过一次,就不能做成绩(分数)的增长了
            print "再算一遍,第%d题:%d/%d的商=?"%(num,x,y),
            input=raw_input()
            intp=string.atoi(input)
            print "余?=",
            input2yushu=raw_input()
            intp2yushu=string.atoi(input2yushu)
        
            if x ==( intp*y + intp2yushu ):
                break;
            continue;
        if x == ( (intp*y)+intp2yushu ):
            print "对了! %d/%d就是等于商%d,余%d !"%(x,y,intp,intp2yushu)
            if flagwrong==0:
                righ1t=righ1t+1
            continue;
        break;

#100以内的 加法/减法/乘法/除法
------------------------------------------------------------------------


“缩进问题”暂时用 选则(选灰)然后用<Tab>键实现缩进……

缩进还是问题啊!

希望以后 Python 能添加  {}(代码块,或者 : 用  “end”实现代码块的结束……而不是强制缩进!


=====================================================================
import string
import random
input=11
nums=10
num=0
righ1t=0 #分数#
flagwrong=0 #没错过
print "\e[1;34mThis text is bold blue.\e[0m\n"
print "一共有%d道题目:"%(num)
print "\e[33;45;1mBold yellow on magenta.\e[0m\n";
while True:
    flagwrong=0
    if num==nums:
        print "一共(1次就)做对了%d道/%d道 题目"%(righ1t,nums),
        if righ1t==10:
            print "你真棒啊! 100分啊!!!"
        elif righ1t>=8:
            print "你不错啊,80分以上啊!!!"
        else:
            print "还要加油哦!"
        break;
    else:
        num=num+1
    x=random.randint(1, 10)
    y=random.randint(1, 10)
    print ""
    print "第%d题:%d+%d="%(num,x,y),
    input=raw_input()
    intp=string.atoi(input)
    print intp
    while intp!=(x+y):
        print "不对! %d+%d不等于%d"%(x,y,intp)
        flagwrong=1; #错过一次,就不能做成绩(分数)的增长了
        print "再算一遍,第%d题:%d+%d="%(num,x,y),
        input=raw_input()
        intp=string.atoi(input)
        if intp==x+y:
            break;
        continue;
    if intp == (x+y):
        print "对了! %d+%d就是等于%d"%(x,y,intp)
        if flagwrong==0:
            righ1t=righ1t+1
        continue;
    break;

#先做的 10以内的 加法……

微笑

原创粉丝点击