对结果为100以内的数随机生成四则运算(python)

功能需求

1.能生成指定个数的算式

2.能选择是否输出负数

3.每次生成一个算式,可以进行输入,如果输入的结果与答案相同这输出正确,如果不相同,则输出错误,并且再去输出算式和结果

4.随机生成+,-,*,/    实现随机出现1~4个运算符

5.计算的结果小于100

 

 

import random

import  numpy as np

print('输入所需要的题目数量')        #这里设置要多少个算式

n = int(input())

j=0

print('是否输出负数:1是,2不是')    #这里设置是否要输出负数

f=input()

f1=int(f)


while j<=n:
    fhgs = np.random.randint(4, size=4)    #生成随机数组,作为运算符的下标,实现随机产生运算符

    shu = np.random.randint(1, high=100, size=5)    #生成随机数组,作为运算数

    zfs = random.randint(1,4)               #生成随机数,实现输出不同个数运算符的算式

    ysf = ['+', '-', '*', '/']            #定义号 四个运算符

    if zfs ==1:         #按照随机数,实现输出不同个数运算符的算式
        str1 = str(shu[0]) + ysf[fhgs[0]] + str(shu[1])

    elif zfs ==2:
        str1 = str(shu[0]) + ysf[fhgs[0]] + str(shu[1]) + ysf[fhgs[1]] + str(shu[2])

    elif zfs ==3:
        str1 = str(shu[0]) + ysf[fhgs[0]] + str(shu[1]) + ysf[fhgs[1]] + str(shu[2])+ ysf[fhgs[2]] + str(shu[3])

    elif zfs ==4:
        str1 = str(shu[0]) + ysf[fhgs[0]] + str(shu[1]) + ysf[fhgs[1]] + str(shu[2])+ ysf[fhgs[2]] + str(shu[3])+ ysf[fhgs[3]] + str(shu[4])

    result =eval(str1)        #计算结果

    if f1==2:    #正数输出
      if result in range (0,100):      #确保结果范围
        j=j+1                       #计数,实现指定输出多少个算式
        print(str1)

        x=input()

        y=int(x)

        if y==result:         #验证计算的答案是否正确
            print('正确')
            print('下一题')
        else:
            print('错误')           #输出正确答案
            print(str1 + '=' + "%.2f" % result + '            ')
            print('下一题')


    elif f1==1:   #负数输出
        if result <=100:
            j = j + 1
            print(str1)

            x = input()

            y = int(x)

            if y == result:
                print('正确')

            else:
                print('错误')
                print(str1 + '=' + "%.2f" % result + '            ')

            if j<n:
                print('下一题')

 

 

运行结果:

 

 

 

 

 

 

 

posted @ 2020-10-12 01:37  Puu~  阅读(1400)  评论(0)    收藏  举报