zoukankan      html  css  js  c++  java
  • 四则运算试题生成,结对

    作业地址:https://edu.cnblogs.com/campus/nenu/2019fall/homework/7631

    代码地址:https://e.coding.net/ddd111/f4.git

    结对伙伴:都雪冬

    功能1和功能2重难点:

    功能二包含功能一,所以我俩就把这两个功能放一起了。对于随机数的生成我们查阅了相关的书籍,对于python一些方法引用的不熟悉,导致走了很多弯路,对我们来说也是一个难点。括号的正确添加以及运算符的优先级设置也是重点。

    部分代码:

        def _f4(self):
            from random import randint
            from random import uniform
            from fractions import Fraction #为符号计算所导入的包
            operator1 = ['+', '-', '*', '/']
            operator2 = ['(', '', ')']
            left_1 = randint(0, 1)
            left_2 = randint(0, 1)
            left_3 = randint(0, 1)
            right_1 = randint(1, 2)
            right_2 = randint(1, 2)
            right_3 = randint(1, 2)
            if left_1 == 0:
                left_2 = 1
                left_3 = 1
                if right_1 == 2:
                    right_2 = 1
                    right_3 = 1
                else:
                    right_2 = 2
                    right_3 = 1
            else:
                if left_2 == 0:
                    left_3 = 1
                    right_1 = 1
                    if right_2 == 2:
                        right_3 = 1
                    else:
                        right_3 = 2
                else:
                    left_3 = 0
                    right_1 = 1
                    right_2 = 1
                    right_3 = 2
            first_num = randint(1, 20)
            first_num = Fraction(first_num).limit_denominator(10)
            second_num = randint(1, 20)
            second_num = Fraction(second_num).limit_denominator(10)
            third_num = randint(1, 20)
            third_num = Fraction(third_num).limit_denominator(10)
            fourth_num = randint(1, 20)
            x = randint(0, 2)
            y = randint(0, 3)
            z = randint(0, 3)
            equal = operator2[left_1] + str(first_num) + operator1[x] + operator2[left_2] + str(second_num) + 
                 operator2[right_1] + operator1[y] + operator2[left_3] + str(third_num) + operator2[right_2] + 
                 operator1[z] + str(fourth_num) + operator2[right_3]
            return (equal)
    

    运行截图:

     

     功能三重难点:

    在功能一二的基础上,运用运用argparse模块来处理命令行参数。还需要输入的数字必须是正整数。如何将生成的表达式写入到本地的文件也是一个难点。

    代码如下:

    复制代码
        def _f4_integer_parser(self,x):
    p = "题目数量必须是正整数。"
    try:
    x = int(x)
    if x >= 0:
    for i in range(x):
    equal_1 = f4()._f4()
    _right = f4()._f4_answer(equal = equal_1)
    equal_1 = equal_1 + "="
    print(equal_1.ljust(50), _right)
    else:
    print(p)
    except:
    print(p)
    return(0)
    if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("-c", "--cin")
    args = parser.parse_args()
    if args.cin == None:
    f4()._f4_input()
    else:
    f4()._f4_integer_parser(args.cin)
    复制代码

    运行截图:

    截图如下:

    功能4重难点:

    是在学长的帮助下编写的,运用random.uniform(a,b) 方法生成随机浮点数,在[a,b)范围内,然后运用fractions.Fraction()方法生成分数形式。详细的功能还不是很理解。

     总结:

    在此次的结对编程中,我的编程能力较弱,在同伴的的帮助下以及相关资料的查阅过程中,还寻求了上届学长的帮助,让我对python这门语言有了更深刻的理解,同时也学会了许多方法。结对使得彼此能之处对方的缺点,同时也更好的提高自己的能力,取长补短,节省了大量走弯路的时间。

    工作环境:星华公寓214

    使用的是都雪冬的电脑。

  • 相关阅读:
    PHP断点续传(下载)代码
    PHP及相关服务器防盗链
    工作过程中注意事项(一)
    ubuntu下libtorrent库安装
    ubuntu ftp 服务器搭建
    ubuntu系统搭建php+apache+cumulusclips
    JavaScript HTML DOM 元素(节点)
    JavaScript 闭包
    安装安卓(Android)x86系统
    javascript 错误与调试
  • 原文地址:https://www.cnblogs.com/qiwh/p/11583620.html
Copyright © 2011-2022 走看看