Python实现简单的四则运算,,GitHub 项目地


GitHub 项目地址

https://github.com/745421831/-/tree/master


PSP

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

10

20

· Estimate

· 估计这个任务需要多少时间

10

10

Development

开发

360

600

· Analysis

· 需求分析 (包括学习新技术)

30

40

· Design Spec

· 生成设计文档

30

40

· Design Review

· 设计复审 (和同事审核设计文档)

10

15

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

5

5

· Design

· 具体设计

40

80

· Coding

· 具体编码

300

500

· Code Review

· 代码复审

60

120

· Test

· 测试(自我测试,修改代码,提交修改)

180

120

Reporting

报告

120

60

· Test Report

· 测试报告+博客

120

120

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

40

30

合计

1325

1770

项目要求

能自动生成小学四则运算题目除了整数以外,还要支持真分数的四则运算

解题思路

了解四则运算的基本法则利用随机函数随机生成数字以及运算符用户输入答案程序需要判断答案是否正确支持真分数运算

设计实现及代码说明

import randomfrom fractions import Fractionoperation = [‘+‘, ‘-‘, ‘*‘, ‘/‘]   #四则运算的符号global fdef integer_score():    #rand = operation[random.randint(0,3)]    number = random.randint(1,4)     #随机产生的表达式长度    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(‘题目:‘)        print(f, ‘=‘)        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)    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(综合题目)‘)        m = int(input())        if m == 1:            score()        elif m == 2:            integer()        elif m == 3:            integer_score()        elif m == 0:            exit()        else:            print(‘请重新输入你的选择‘)#isinstance(1, int)

总结

这次利用Python实现简单的四则运算还不够完美,比如没有随机生成带括号的由于时间原因以及个人能力有限,这些只能以后慢慢完善。

Python实现简单的四则运算

评论关闭