Loading

简单的四则运算

import numpy as np

def noAnwser():
    num = 10
    while(num):
        op = ['+', '-', "*", '/']
        x = np.random.randint(101)
        y = np.random.randint(101)
        z = np.random.randint(101)
        num1 = np.random.randint(4)
        num2 = np.random.randint(4)
        expression = [x, op[num1], y, op[num2], z]

        # 被除数不能为0
        if (op[num1] == '/' and y == 0) or (op[num2] == '/' and z == 0):
            continue

        num = num - 1
        for elem in expression:
            print(str(elem) + " ", end="")
        print("= ")

def Anwser():
    num = 10
    while(num):
        op = ['+', '-', "*", '/']
        x = np.random.randint(101)
        y = np.random.randint(101)
        z = np.random.randint(101)
        num1 = np.random.randint(4)
        num2 = np.random.randint(4)
        expression = [x, op[num1], y, op[num2], z]
        exp = ""
        mid = ""

        # 被除数不能为0
        if (op[num1] == '/' and y == 0) or (op[num2] == '/' and z == 0):
            continue
            
        # 判断计算顺序写出表达式
        if num1 <= 1 and num2 > 1:
            mid = str(expression[2]) + str(expression[3] + str(expression[4]))
            exp = str(expression[0]) + str(expression[1]) + str(eval(mid))
        else:
            for j in expression:
                exp = exp + str(j)

        # 对结果进行约束
        if eval(exp) <= 100 and eval(exp) >= 0:
            for elem in expression:
                print(str(elem) + " ", end="")
            num = num - 1
            print("= " + str(eval(exp)))

if __name__ == "__main__":
    noAnwser()

输出结果:

1. 两个运算符,100以内的数字,不需要写答案

 

 2. 需要写答案,答案在0-100之间

 

posted @ 2020-10-11 20:02  newgoals  阅读(154)  评论(0)    收藏  举报