编写一个名为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是结果
答案 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
*
和+
。故意?