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))
测试运行: