首页 > 其他 > 详细

20180925-6 四则运算试题生成

时间:2018-10-08 12:26:01      阅读:249      评论:0      收藏:0      [点我收藏+]

本作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2148

功能1. 四则运算要求随机生成四则运算包括加减法。

结对编程对象:杨磊

功能:随机生成运算式。

代码部分:定义函数f4,用random随机生成数字,并把运算符赋值给operator1。

class f4(object):
    def __init__(self):
        pass
    def _f4(self):
        from random import randint
        from random import uniform
        from fractions import Fraction
        operator1 = [+, -, *, /]

#定义等式equal

        equal = str(a) + operator1[x]+ str(b)+ operator1[y] + str(c) +              operator1[z] + str(d)

#定义正确答案answer_right,用此变量对比输入(input),如果相等就证明答案正确,输出答对了;如果相比不相等则说明答案错误,输出:再想想吧,答案似乎是_。

for i in range(20):
                equal_1 = f4()._f4()
                print(equal_1, "=")
                answer_right = f4()._f4_answer(equal = equal_1)
                _ans = input("?")
                if _ans == answer_right:
                    print("答对啦,你真是个天才!")
                    m = m + 1
                else:
                    print("再想想吧,答案似乎是", answer_right, "喔!")
                    n = n + 1
            print("你一共答对", m, "道题,一共20道题。")

功能测试:

技术分享图片

功能: 加括号

代码部分

#在4个数字之间分别判断是否加入括号,定义left_1-3,right_1-3共6个变量

        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

因此,表达式也更新为:

        equal = operator2[left_1] + str(a) + operator1[x] + operator2[left_2] + str(b) +              operator2[right_1] + operator1[y] + operator2[left_3] + str(c) + operator2[right_2] +              operator1[z] + str(d) + operator2[right_3]

测试图片:

技术分享图片

功能:数量及打印txt

代码:

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)

测试结果

技术分享图片

 

技术分享图片

 

20180925-6 四则运算试题生成

原文:https://www.cnblogs.com/yangjm137/p/9753628.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!