四则运算小题目(Python)
github地址:https://github.com/shiwangqiu/Python里的test.py
题目要求:
1.能自动生成小学四则运算题目
2.除了整数外还支持真分数的四则运算
3.不能出现负数
做题思路:
先把代码分成三个部分:整数运算模块a、真分数运算模块b、随机调用a、b模块,然后在主函数设计输出输入,有在线做题、批发题目功能
import random from fractions import Fraction #整数运算 def newint(): opr = ['+', '-', '×', '÷'] fh = random.randint(0, 3) n1 = random.randint(1, 20) n2 = random.randint(1, 20) rjg = 0 if fh == 0: rjg = n1 + n2 elif fh == 1: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 - n2 elif fh == 2: rjg = n1 * n2 elif fh == 3: n1, n2 = max(n1, n2), min(n1, n2) while n1 % n2 != 0: n1 = random.randint(1, 10) n2 = random.randint(1, 10) n1, n2 = max(n1, n2), min(n1, n2) rjg = int(n1 / n2) print(n1, opr[fh], n2, '= ', end='') return rjg #真分数运算 def newfra(): opr = ['+', '-', '×', '÷'] fh = random.randint(0, 3) t1 = random.randint(1, 10) t2 = random.randint(t1, 10) n1 = Fraction(t1, t2) t1 = random.randint(1, 10) t2 = random.randint(t1, 10) n2 = Fraction(t1, t2) rjg = 0 if fh == 0: rjg = n1 + n2 elif fh == 1: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 - n2 elif fh == 2: rjg = n1 * n2 elif fh == 3: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 / n2 print(n1, opr[fh], n2, '= ', end='') return rjg def newtest(): opr = ['+', '-', '×', '÷'] print('输入题库所需要的题目数量') n=int(input()) rjg=[] m=0 while m<=(n-1): fh = random.randint(0, 4) if fh==0: print(m+1,end='、') rjg.append(newfra()) print(' ') else: print(m+1,end='、') rjg.append(newint()) print(' ') m=m+1 m=0 print('答案:') while m<=(n-1): print(m+1,'、',rjg[m]) m=m+1 print('1、四则运算') print('2、制作题库') n=int(input()) if n==1: print('input "0000" to Quit') while True: fh = random.randint(0, 4) if fh == 0: rjg = newfra() jg = input() if jg == '0000': break; sr = Fraction(jg) if sr == rjg: print('right') else: print('error. the Tight answer is', rjg) else: rjg = newint() jg = input() if jg == '0000': break; sr = int(jg) if sr == rjg: print('right') else: print('error. the Tight answer is', rjg) if n==2: newtest()
测试运行:
效能分析: