随机生成四则运算(小学生要能做)

要小学生能做的四则运算,要求十以内所以我在前两个运算子程序中,放入了一个while循环,将得到的result进行判断,大于十的式子将不会被输出,而是再次执行程序,直到结果小于10时,输出计算式以及答案
import fractions
from fractions import Fraction
import random
def integer():
    d=0
    result = 100
    while True:
      if result>=10:
        symbol = ['+', '-', '×', '÷']
        x = random.randint(0, 3)
        n1 = random.randint(1, 10)
        n2 = random.randint(1, 10)
        if x == 0:
          result = n1 + n2
        elif x == 1:
          n1, n2 = max(n1, n2), min(n1, n2)
          result = n1 - n2
        elif x == 2:
          result = n1 * n2
        elif x == 3:
          n1, n2 = max(n1, n2), min(n1, n2)
          while n1 % n2 != 0:
            n1 = random.randint(1, 10)
            n2 = random.randint(1, 10)
            n1, n2 = max(n1, n2), min(n1, n2)
          result = int(n1 / n2)
          if result>1:
            result=100
          else:
            pass
      else:
        break
    print(n1, symbol[x], n2, '= ', end='')
    return result
def fraction():
    result = 100
    d=0
    while True:
      if result>=10:
        symbol = ['+', '-', '×', '÷']
        x = random.randint(0, 3)
        t1 = random.randint(1, 10)
        t2 = random.randint(t1, 10)#保证真分数
        n1 = Fraction(t1, t2)#化简
        t1 = random.randint(1, 10)
        t2 = random.randint(t1, 10)#保证真分数
        n2 = Fraction(t1, t2)#化简
        if x == 0:
          result = n1 + n2
          if result>1:
            result=100
          else:
            pass
        elif x == 1:
          n1, n2 = max(n1, n2), min(n1, n2)
          result = n1 - n2
          if result>1:
            result=100
          else:
            pass
        elif x == 2:
          result = n1 * n2
          if result>1:
            result=100
          else:
            pass
        elif x == 3:
          n1, n2 = max(n1, n2), min(n1, n2)
          result = n1 / n2
          if result>1:
            result=100
          else:
            pass
      else:
        break
    print(n1, symbol[x], n2, '= ', end='')
    return result
def library():
    print('输入题库所需要的题目数量')
    n=int(input())
    result=[]
    m = 0
    while m<=n-1:
        x = random.randint(0, 4)
        if x==0 :
            print(m+1,end='   ')
            result.append(fraction())#将结果放入result库
            print(' ')
        else:
            print(m+1,end='   ')
            result.append(integer())#将结果放入result库
            print(' ')
        m=m+1
    m = 0#序数归零
    print('答案:')
    while m<=n-1:
        print(m+1,'   ',result[m])#在组中序数从0开始,必须m<=n
        m=m+1

#begin
print('1、四则运算')
print('begin')
library()
input("按任意键退出")
posted @ 2019-11-24 13:04  氧气2019  阅读(154)  评论(0编辑  收藏  举报