Python实现简单的四则运算GitHub 项⽬地址
PSP
PSP2.1Personal Software Process
Stages
预估耗时(分
钟)
实际耗时(分
钟)
Planning计划1020· Estimate· 估计这个任务需要多少时间1010 Development开发360600· Analysis· 需求分析 (包括学习新技术)3040· Design Spec· ⽣成设计⽂档3040· Design Review· 设计复审 (和同事审核设计⽂档)1015
· Coding Standard · 代码规范 (为⽬前的开发制定合
适的规范)
55
· Design· 具体设计4080· Coding· 具体编码300500· Code Review· 代码复审60120
· Test · 测试(⾃我测试,修改代码,
提交修改)
180120
Reporting报告12060· Test Report· 测试报告+博客120120· Size Measurement· 计算⼯作量1010· Postmortem & Process
Improvement Plan
· 事后总结, 并提出过程改进计划4030合计13251770
项⽬要求
能⾃动⽣成⼩学四则运算题⽬
除了整数以外,还要⽀持真分数的四则运算
解题思路
了解四则运算的基本法则
利⽤随机函数随机⽣成数字以及运算符
⽤户输⼊答案程序需要判断答案是否正确
⽀持真分数运算
设计实现及代码说明
import random
from fractions import Fraction
operation = ['+', '-', '*', '/']  #四则运算的符号
global f
def integer_score():
f = ''
for i in range(number):
a = random.randint(1,20)      #随机产⽣的表达式中的数
rand = operation[random.randint(0, 3)]    #随机选择⼀个四则运算中的符号if rand == '/':
b = random.randint(a, 20)              #随机产⽣的真分数的分母
f += str(a) + rand + str(b)              #数与符号相连
rand = operation[random.randint(0, 2)]    #随机选择⼀个四则运算中的符号            f += rand
else:
f += str(a) + rand
#print(a,rand,end='')
b = random.randint(1, 20)
f += str(b)                    #得到完整的表达式
n = eval(f)                      #得到表达式的结果
n = Fraction('{}'.format(n)).limit_denominator()    #⼩数转化为分数
if n > 0:
print('题⽬:')
print(f,'=')
print('请输出答案:')
x = Fraction('{}'.format(eval(input()))).limit_denominator()
if n == x:                  #输⼊的数与表达式⽐较
print(True)
else:
print(False)
print('正确的答案为:',n)
else:
integer_score()
def integer():
# rand = operation[random.randint(0,3)]
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
rand = operation[random.randint(0, 3)]
f += str(a) + rand
b = random.randint(1, 10)
f += str(b)
n = eval(f)
if isinstance(n, int) and n > 0:
print('请输出答案:')
x = eval(input())
if n == x:
print(True)
else:
print(False)
print('正确的答案为:', n)
else:
integer()
def score():
op = ['+', '-']
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
b = random.randint(a, 10)
rand = op[random.randint(0, 1)]
f += str(a) + '/'+ str(b)+rand
a = random.randint(1, 10)
b = random.randint(a, 10)random python
f += str(a) + '/'+ str(b)
n = eval(f)
n = Fraction('{}'.format(n)).limit_denominator()
if n > 0:
print('题⽬:')
print(f,'=')
print('请输出答案:')
x = Fraction('{}'.format(eval(input()))).limit_denominator() if n == x:
print(True)
else:
print(False)
print('正确的答案为:',n)
else:
score()
if__name__ == '__main__':
while True:
print('选择你想做的题⽬:')
print('0(退出)1(分数题⽬),2(整数题⽬),3(综合题⽬)')
score()
elif m == 2:
integer()
elif m == 3:
integer_score()
elif m == 0:
exit()
else:
print('请重新输⼊你的选择')
#isinstance(1, int)
总结
这次利⽤Python实现简单的四则运算还不够完美,⽐如没有随机⽣成带括号的由于时间原因以及个⼈能⼒有限,这些只能以后慢慢完善。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。