小学四则运算法则训练
PSP表格:

解题思路:
算式的随机抽取---结果正误及时判断---整数除法的分数表达
实现过程:
Fraction(n1, n2)函数的使用使得结果可以得出一个分数。
自定义函数f()来实现假分数变为带分数。
代码实现:
1 import random
2 #四则运算
3 from fractions import Fraction
4 def f(f):#分数的转换
5 a=f.numerator #分子
6 b=f.denominator #分母
7 if a%b==0:#为整数
8 return '%d'%(a/b)
9 elif a<b:#为真分数
10 return '%d%s%d' % (a,'/',b)
11 else:#为带分数
12 c=int(a/b)
13 a = a - c * b
14 return '%d%s%d%s%d' % (c,'’',a,'/',b)
15 def ysfz():
16 sym = ['+', '-', '×', '÷']
17 f= random.randint(0, 3)
18 n1 = random.randint(1, 20)
19 n2 = random.randint(1, 20)
20 result = 0
21 if f== 0:#加法
22 result = n1 + n2
23 elif f == 1:#减法,要先比较大小,防止输出负数
24 n1, n2 = max(n1, n2), min(n1, n2)
25 result = n1 - n2
26 elif f== 2:#乘法
27 result = n1 * n2
28 elif f == 3:#除法,要比较大小
29
30 result =Fraction(n1, n2)
31 print(n1, sym[f], n2, '= ', end='')
32
33 return result
34 print('请输入1进行四则运算')
35 n=int(input())
36 #当输入1时,进行四则运算,调用函数syzs()
37 if n==1:
38 while True:
39 result = ysfz()
40 j= input()
41
42 if j== f(result ):
43 print('well',f(result))
44 else:
45 print('more again,the answer is', f(result))
测试运行:


浙公网安备 33010602011771号