小学四则运算法则训练

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))
复制代码

测试运行:

posted on 2020-10-03 17:04  广师大01号技师  阅读(167)  评论(0编辑  收藏  举报

导航