zoukankan      html  css  js  c++  java
  • 自动生成小学四则运算(改进)

    GitHub源代码;https://github.com/asd2396012061/1/blob/master/new%20sizeyunsuan

    要求:对上次的自动生成小学四则运算进行改进

    在原有程序的基础上,我添加了一个转换假分数答案为带分数答案(存储在ans2[]列表中)的函数f(f),以便当学生给出带分数答案时程序不会认为是错误的。

    代码:

    def f(f):  #分数的转换
        a=f.numerator  #分子
        b=f.denominator  #分母
        if a%b==0:  #为整数
            return '%d'%(a/b)
        elif a<b:  #为真分数
            return '%d%s%d' % (a,'/',b)
        else:       #为带分数
            c=int(a/b)
            a = a - c * b
            return '%d%s%d%s%d' % (c,'',a,'/',b)

    更新并修改了主函数后代码运行结果如下:

    鉴于原本的真分数运算中,算式中出现有假分数出现,故对负责假分数运算的函数进行修改

    #新增的真分数结果运算函数def zfsResult(zfss,m1,m2): 
        if zfss == '+':
            print('{} + {} = {}'.format(m1,m2,jhd(m1 + m2)))
        elif zfss == '-':
            print('{} - {} = {}'.format(m1,m2,jhd(m1 - m2)))
        elif zfss == '*':
            print('{} * {} = {}'.format(m1,m2,jhd(m1 * m2)))
        elif zfss == '/':
            if m2 == 0:
                print('***除数不能为零***')
            else:
                print('{} / {} = {}'.format(m1,m2,jhd(m1 / m2)))
        else:
            print('输入有误,请重新输入!')
    #假分数转化带分数def jhd(f):  
        a=f.numerator  
        b=f.denominator  
        if a%b==0:  
            return '%d'%(a/b)
        elif a<b:  
            return '%d%s%d' % (a,'/',b)
        else:       
            c=int(a/b)
            a = a - c * b
            return '%d%s%d%s%d' % (c,'',a,'/',b)

    优化后测试结果如下

    psp表格

    PSP表格指标

    预估耗时(分钟)

    实际耗时(分钟)

    预估项目花费时间

    200

    240

    需求分析与思路解析

    80

    30

    代码实现

    80

    85

    代码测试

    35

    38

    代码优化

    30

    45

    写博客

    25

    28

  • 相关阅读:
    嵌入式操作系统-小型任务调度的理解(转)
    数据分析-pandas基础入门(一)
    硬件电路设计——低通滤波器的应用
    Docker
    AWK总结
    DNS解析
    TCP/IP
    Mysql优化部分总结
    Nginx配置文件释义备查
    时间模块
  • 原文地址:https://www.cnblogs.com/czd1/p/13742138.html
Copyright © 2011-2022 走看看