Python随机方程

时间:2015-10-13 02:09:39

标签: python

编写一个名为random_equation的函数,该函数将单个参数作为输入,在随机方程中生成的运算符的数量,并返回表示涉及数字1-10和运算符+, - ,*的随机数学等式的字符串。

def random_equation(num): 
    result = ""
    for i in range (num):
        number = random.randint(1, 10)
        if number == 1:
            num_gen = (" 1 ")
        elif number == 2:
            num_gen = (" 2 ")
        elif number == 3:
            num_gen = (" 3 ")
        elif number == 4:
            num_gen = (" 4 ")
        elif number == 5:
            num_gen = (" 5 ")
        elif number == 6:
            num_gen = (" 6 ")
        elif number == 7:
            num_gen = (" 7 ")
        elif number == 8:
            num_gen = (" 8 ")
        elif number == 9:
            num_gen = (" 9 ")
        else:
            num_gen = (" 10 ")


        operator = random.randint(1,4)
        if operator == 1:
            op_gen = (" + ")
        elif operator == 2:
            op_gen = (" - ")
        else:
            op_gen = (" * ")


        math = result + num_gen + op_gen

我真的不知道在哪里放[i]让它重复循环,因为number是一个整数而num_gen是结果

1 个答案:

答案 0 :(得分:2)

这里有几个问题。

  • 您的math每次都会被替换(例如"" + " 2 " + " - "),因此您永远无法构建更长的序列。您希望在每次迭代中result更长时间:result = result + num_gen + op_gen,而不是始终使用空math创建新的result

  • 你永远不会return。循环结束时,您需要return result

  • 您现在正在生成num个号码和num个运营商;这将产生类似1 + 3 *的方程,这些方程有点不平衡。您只想添加num - 1对,然后再添加一个数字。

  • 有一种简单的方法可以用数字创建一个字符串; str(num)将完成你在二十行中所做的事情,只是没有空格。

  • {1}从1到4,您将生成尽可能多的operator *+。故意?