首页 > 编程语言 > 详细

小学四则运算训练及套题生成(Python)

时间:2019-03-21 14:19:54      阅读:380      评论:0      收藏:0      [点我收藏+]
  1 ‘‘‘
  2 Created on 2019年3月21日
  3 
  4 @author: Chilincoln
  5 
  6 #Construct a Fraction by numerator and denominator
  7 print (Fraction(3))      #3
  8 print (Fraction())       #0
  9 print (Fraction(10,8))   #5/4
 10  
 11 #construct by other fraction
 12 print (Fraction(5/4))    #5/4
 13 ‘‘‘
 14 import random
 15 from fractions import Fraction
 16 
 17 #def newint() 生成整数四则运算
 18 def newint():
 19     opr = [, , ×, ÷]
 20     #以下fh取符号,n1、n2取随机整数
 21     fh = random.randint(0, 3)
 22     n1 = random.randint(1, 20)
 23     n2 = random.randint(1, 20)
 24     rjg = 0
 25     if fh == 0:
 26         rjg = n1 + n2
 27     elif fh == 1:
 28         #防止出现负数,则取大的在前,小的在后
 29         n1, n2 = max(n1, n2), min(n1, n2)
 30         rjg = n1 - n2
 31     elif fh == 2:
 32         rjg = n1 * n2
 33     elif fh == 3:
 34         n1, n2 = max(n1, n2), min(n1, n2)
 35         #除法缩小难度,不考虑余数
 36         while n1 % n2 != 0:
 37             n1 = random.randint(1, 10)
 38             n2 = random.randint(1, 10)
 39             n1, n2 = max(n1, n2), min(n1, n2)
 40         rjg = int(n1 / n2)
 41     #输出题目,返回答案
 42     print(n1, opr[fh], n2, = , end=‘‘)
 43     return rjg
 44 
 45 #def newfra() 生成真分数四则运算
 46 def newfra():
 47     opr = [, , ×, ÷]
 48     #创造n1、n2为随机分数
 49     fh = random.randint(0, 3)
 50     t1 = random.randint(1, 10)
 51     t2 = random.randint(t1, 10)
 52     n1 = Fraction(t1, t2)
 53     t1 = random.randint(1, 10)
 54     t2 = random.randint(t1, 10)
 55     n2 = Fraction(t1, t2)
 56     rjg = 0
 57     if fh == 0:
 58         rjg = n1 + n2
 59     elif fh == 1:
 60         n1, n2 = max(n1, n2), min(n1, n2)
 61         rjg = n1 - n2
 62     elif fh == 2:
 63         rjg = n1 * n2
 64     elif fh == 3:
 65         n1, n2 = max(n1, n2), min(n1, n2)
 66         rjg = n1 / n2
 67     print(n1, opr[fh], n2, = , end=‘‘)
 68     return rjg
 69 
 70 # def newtest() 生成制定指定数量的四则运算题目
 71 def newtest():
 72     opr = [, , ×, ÷]
 73     print(输入题库所需要的题目数量:)
 74     n=int(input())
 75     #建立一个答案列表rig[]
 76     rjg=[]
 77     #m为题序
 78     m=0
 79     while m<=(n-1):
 80         #随机四则运算,设置分数四则运算的概率为1/4,整数为3/4
 81         fh = random.randint(0, 4)
 82         if fh==0:
 83             print(m+1,end=)
 84             rjg.append(newfra())
 85             print( )
 86         else:
 87             print(m+1,end=)
 88             rjg.append(newint())
 89             print( )
 90         m=m+1
 91     m=0
 92     print(答案:)
 93     while m<=(n-1):
 94         print(m+1,,rjg[m])
 95         m=m+1
 96         
 97 print(输入 1 开始逐题练习四则运算)
 98 print(输入 2 开始制作四则运算题库)
 99 n=int(input())
100 if n==1:
101     print(input "0000" to Quit)
102     while True:
103         fh = random.randint(0, 4)
104         if fh == 0:
105             rjg = newfra()
106             jg = input()
107             if jg == 0000:
108                 break;
109             sr = Fraction(jg)
110             if sr == rjg:
111                 print(Bingo!)
112             else:
113                 print(Sorry, the true answer is, rjg)
114         else:
115             rjg = newint()
116             jg = input()
117             if jg == 0000:
118                 break;
119             sr = int(jg)
120             if sr == rjg:
121                 print(Bingo!)
122             else:
123                 print(Sorry, the true answer is, rjg)
124 if n==2:
125     newtest()
126     

 

小学四则运算训练及套题生成(Python)

原文:https://www.cnblogs.com/chilincoln/p/10571295.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!