我的习惯是:
在接受任何用户输入之前,预先计算从 1 * 1 到 20 * 20(即 2 * 1、3 * 1、4 * 1 等;后跟 2 * 2、3 * 2、4 * 2 等)的每个可能的乘法的值,并将值存储在字典中。它还必须检索用户从字典中请求的值,而不是再次计算它。
我正在考虑以下任一:
- 创建 20x2 矩阵或
- 创建从 1:20 开始的列表。
这两个选项都将使用 for 循环来预先计算值。
我们在课堂上复习了元组,可以在这里应用吗?如果是这样,如何?
请不要给我代码,除非你需要它来帮助解释
是的,元组在这里适用。
你在这里不需要矩阵,只需要一个嵌套的for
循环,比如一个用于i
,另一个用于j
。在循环中,您可以创建一个元组键((i, j)
),并将乘法结果存储在字典中的该键下:
multiplications[(i, j)] = i * j
甚至
multiplications[i, j] = i * j
因为括号在这里是可选的。
获取用户输入后,您可以查找这些结果:
result = multiplications[userinput1, userinput2]
最终会使用for
循环,是的。 如果你有这个想法,你就走在正确的轨道上。 您可能缺少的部分是您可以使用元组作为字典的键。 所以像这样:
{(3, 4): 12}
将允许您存储该结果的预先计算值。 这可能会让你到达你需要的地方。