zoukankan      html  css  js  c++  java
  • 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”

  • 相关阅读:
    centos7中Apache,MySQL,php安装和项目
    centos7中Apache,MySQL,php安装
    tp5中index.php的隐藏
    php打印
    绝对与相对的区别
    tinkphp框架中config.php中数组中参数的意义
    tinkphp框架开启调试
    获取唯一随机数
    如何在magento中建立自定义页面
    获取用户邮寄地址
  • 原文地址:https://www.cnblogs.com/nikochan/p/6501881.html
Copyright © 2011-2022 走看看