小学四则运算的简单实现
GitHub项目地址:https://github.com/fangzehui22/SiZeYunSuan
一、PSP
PSP |
Personal Software Process Stages |
预估耗时(分钟) |
· Planning |
· 计划 |
10 |
· Estimate |
· 估计这个任务需要多少时间 |
20 |
· Development |
· 开发 |
800 |
· Analysis |
· 需求分析 |
40 |
· Coding Standard |
· 代码规范 |
5 |
· Design |
· 具体设计 |
40 |
· Coding |
· 具体编码 |
6h |
· Test |
· 测试(自我测试,修改代码,提交修改) |
3h |
· Reporting |
· 报告 |
5h |
· Test Report |
· 测试报告、博客 |
4h |
· Postmortem |
· 事后总结 |
30 |
合计 |
2084 |
二、题目要求
(1)能自动生成小学四则运算题目
(2)除了整数外,还支持真分数的四则运算
三、解题思路
刚看到这个作业题目的时候一脸懵逼,小学四则运算听起来好像很简单,但是要用python代码实现出来对我来说还是有一定的难度,所以就先去网上找资料,想参考一下别人的思路,自己才知道从哪里下手。需要注意的是,因为小学生没有学过负数,所以计算结果不能出现负数。根据运算规则,除法的分母不能为0。
四、实现过程
在写代码时,利用循环分别随机生成加减乘除的题目,并判断用户的输入结果是否正确。如果正确,则打钩;如果错误,则打叉并给出正确答案。
五、具体代码
1 import random 2 3 opr = ['+','-','×','÷'] 4 5 ch = '0' 6 7 print('输入 "exit" 退出') 8 9 while True: 10 11 fh = random.randint(0, 3) 12 13 n1 = random.randint(1, 10) #1<n1<10 14 15 n2 = random.randint(1, 10) #1<n2<10 16 17 rjg = 0 18 19 if fh == 0: #加 20 21 rch = n1 + n2 22 23 elif fh == 1: #减 24 25 n1,n2 = max(n1,n2),min(n1,n2) #确保用大的数减去小的数 26 27 rch = n1 - n2 28 29 elif fh == 2: #乘 30 31 rch = n1 * n2 32 33 elif fh == 3: #除 34 35 n1,n2 = max(n1,n2),min(n1,n2) 36 37 while n1 % n2 != 0: 38 39 n1 = random.randint(1, 10) 40 41 n2 = random.randint(1, 10) 42 43 n1,n2 = max(n1,n2),min(n1,n2) 44 45 rch = int(n1 / n2) 46 47 print(n1, opr[fh], n2, '= ', end='')#自动生成题目 48 49 ch = input() #用户答案 50 51 if ch == 'exit': #输入exit则退出 52 53 break 54 55 sr = int(ch) 56 57 if int(sr) == rch: 58 59 print('√') 60 61 else: 62 63 print('×,答案:', rch)
六、测试运行
七、PSP
PSP |
Personal Software Process Stages |
实际耗时(分钟) |
· Planning |
· 计划 |
8 |
· Estimate |
· 估计这个任务需要多少时间 |
15 |
· Development |
· 开发 |
820 |
· Analysis |
· 需求分析 |
50 |
· Coding Standard |
· 代码规范 |
5 |
· Design |
· 具体设计 |
60 |
· Coding |
· 具体编码 |
8h |
· Test |
· 测试(自我测试,修改代码,提交修改) |
4h |
· Reporting |
· 报告 |
400 |
· Test Report |
· 测试报告、博客 |
5h |
· Postmortem |
· 事后总结 |
40 |
合计 |
2713 |