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

  1 '''
  2 Created on 2019年3月21日
  3 如果在我这么清楚的注释的帮助下,你还是看不懂一下代码。那么建议你,立即放弃当一位程序员
4 如果在我这么清楚的注释的帮助下,你还是看不懂一下代码。那么建议你,立即放弃当一位程序员
5
如果在我这么清楚的注释的帮助下,你还是看不懂一下代码。那么建议你,立即放弃当一位程序员 6 如果在我这么清楚的注释的帮助下,你还是看不懂一下代码。那么建议你,立即放弃当一位程序员
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

 

转载于:https://www.cnblogs.com/chilincoln/p/10571295.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值