用python做猜数游戏(数学运算版)

朋友们大家好,我们都知道,猜数游戏是一个猜测数字大小的游戏,不过我给大家分享的内容是:用python实现数字运算版的猜数游戏。就是说程序会随机生成数字,他会告诉你这个数加 or 减 or乘 or 除,会变成什么数,通过倒推来求出这个数的数值。

先来看看效果:

可以看到 ,程序随机生成数字,要通过倒推法来求出题目答案,在输入999后,程序会告诉你你答的题目、答对了多少题、正确率是多少,最后程序才会结束。

那么这段代码该如何实现呢,首先,我们需要使用random库以及time库(time库为装饰,可以不用)

import random

import time

然后我们需要一些变量

number=1#题目数量
core=0#答对的题目数量
 

然后我们需要让程序出题随机生成数字 以及while True命令,为了让数字不冲突,有逻辑,就需要continue命令。

下面是自动出题以及答对或答错的代码

while True:
    add1=random.randint(1,100)
    add2=random.randint(1,100)
    add3=random.randint(1,100)
    sign=['加','减','乘','除']
    random.shuffle(sign)
    if sign[0]=='加':
        if add3-add2!=add1:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3-add2
        print('一个数加',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='减':
        if add1-add2!=add3:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3+add2
        print('一个数减',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='乘':
        if add3/add2!=add1:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3/add2
        print('一个数乘',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='除':
        if add1/add2!=add3:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add2*add3
        print('一个数除',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            core+=1
            number+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

最后就是源代码:

import random
import time

number=1
core=0
while True:
    add1=random.randint(1,100)
    add2=random.randint(1,100)
    add3=random.randint(1,100)
    sign=['加','减','乘','除']
    random.shuffle(sign)
    if sign[0]=='加':
        if add3-add2!=add1:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3-add2
        print('一个数加',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='减':
        if add1-add2!=add3:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3+add2
        print('一个数减',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='乘':
        if add3/add2!=add1:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add3/add2
        print('一个数乘',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            number+=1
            core+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

    if sign[0]=='除':
        if add1/add2!=add3:
            continue
        time.sleep(0.5)
        print('第',number,'题')
        time.sleep(1)
        print()
        val=add2*add3
        print('一个数除',add2,'等于',add3)
        time.sleep(1)
        ask=int(input('这个数是几(输入999结束):'))
        if ask==val:
            time.sleep(0.5)
            print('回答正确')
            core+=1
            number+=1
            print()
        if ask==999:
            print()
            number1=100/(number/core)
            print('你一共答题:',number,'道')
            time.sleep(1)
            print('你一共答对:',core,'道')
            time.sleep(1)
            print('你的正确率是: %',number1)
            time.sleep(1)
            break
        if ask!=val and ask!=999:
            time.sleep(0.5)
            print('回答错误')
            number+=1
            print()

好了,内容就到这里,感谢观看! 

猜你喜欢

转载自blog.csdn.net/hu20100913/article/details/126604475