• 1st_homework_SE--四则运算题目生成器


    0x00 Code

    查询源代码及README请点此

    0x01 需求分析

    实现一个自动生成小学四则运算题目的命令行程序。

    0x02 功能设计

    主要功能为:

    1. 接受用户输入以便知道要出多少道题目python start.py -n NUMBER
    2. 能随机产生题目: 包括真分数在内的四则运算
    3. 打印题目并接收用户输入的答案
    4. 用户输入的答案与程序计算出来的结果进行匹对
      5.将生成器分别放在3个不同的文件。
    calc.py 为 本项目所使用函数文件 
    config.py 为 配置文件 
    start.py 为启动文件
    

    方便进行管理以及功能改善。
    可阅读性和维护性较高

    6.可以在配置文件中进行设置Fraction Mode.来满足不同年龄段小朋友的做题需求

    0x03 代码分析

    这次的题目比较简单。
    python有包含fraction的包,导入from fractions import Fraction即可使用。
    使用全局变量global result可在各个函数中相互调用,但是在函数中需声明
    采用各个函数分离的方式,由于选择operation的过程有较多重复代码,所以将其分离。

    def calc_fract():
        temp1,temp2=random.randrange(1,10),random.randrange(1,10)
        if temp1>temp2:
            temp1,temp2=temp2,temp1
        fract1=Fraction(temp1,temp2)
        temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
        if temp1>temp2:
            temp1,temp2=temp2,temp1
        fract2 = Fraction(temp1, temp2)
        if fract1<fract2:
            fract1,fract2=fract2,fract1
        op = ['+', '-', '*', '/']
        operation = random.choice(op)
        operate(fract1,fract2,operation)
    def calc_int():
        temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
        if(temp1<temp2):
            temp1,temp2=temp2,temp1
        op = ['+', '-', '*', '/']
        operation = random.choice(op)
        operate(temp1,temp2,operation)
    

    0x05 测试运行:

    Fraction Mode

    No Fraction Mode :

    0x05 psp

    0x06 小结

    1.第一次自己写包再在不同的文件中调用。 import时只要写明文件名即可,不用加上.py

    2.raw_input()这个函数在使用时直接获取的内容为str型。

    3.eval()这个函数可以计算str中包含的运算式子.这样可以减少很多代码量!不过由于eval()的安全问题,建议少用。

    4.在本次试验中遇到最大的问题是,一开始程序对answer和result无法判断正确,后来睡了一觉突然想起来有可能是type的问题。结果果然是!一个是 “class fractions. fraction” 一个是“type int”

  • 相关阅读:
    全屏透明遮罩层
    理解Javascript__理解undefined和null
    JS 对象属性相关--检查属性、枚举属性等
    js 空正则匹配任意一个位置
    a 标签 download 和 target 不配合
    Array.prototype.filter(Boolean)
    页面操作表单不会调用表单 value 属性的 set 函数
    Babel6.x的安装
    html 事件处理程序中的代码在执行时,有权访问全局作用域中的任何代码。
    js 常用 DOM 元素宽高
  • 原文地址:https://www.cnblogs.com/nikochan/p/6501881.html
Copyright © 2020-2023  润新知