我很难理解这一点

时间:2017-09-05 21:30:10

标签: python

result = (a + b - 1) % 7 

输出应该是21但我不明白,我缺少什么?请帮助

2 个答案:

答案 0 :(得分:0)

  1. m = 0x = 1
  2. 由于x < 4它位于while循环中,y设置为1
  3. y < 3开始,它会进入嵌套的while
  4. m变为m + x + y = 0 + 1 + 1 = 2y变为y + 1 = 1 + 1 = 2
  5. 回到循环条件:y < 3?是!因为y = 2。所以它再次进入while
  6. m变为m + x + y = 2 + 1 + 2 = 5y变为3
  7. 再次回到循环条件:y < 3?没有! 3不小于3,因此现在已跳过while
  8. x变为x + 1 = 1 + 1 = 2
  9. 返回第一个while条件:x < 4?是!因为x = 2。所以它再次进入循环
  10. 返回步骤 2
  11. x最终成为4时,while循环将终止并且m将被打印。

答案 1 :(得分:0)

让我们有一个“图形”表示。 考虑:

  • x 值从1开始并从左向右增长(我们不关心3之后的内容:while x < 4
  • y 值( !!!每个 x !!! )从1开始并从上到下增长(我们不知道)关心2之后的事情:while y < 3
  • x 值使用“普通”字体样式显示,而 y 值显示在“ italic
  • 我们关心的所有内容都以“粗体”显示(实际上不是“粗体”的内容甚至不会被程序计算出来,我是将这些值放在这里,只是为了清楚起见):
    • x 值( x ∈{1,2,3})
    • y 值( y ∈{1,2})
  • x 行显示两次,因为对于每个 y x 被添加到总和
  • 总和:
    • 位于分隔线下并从0开始
    • 每个数字是该列(在其上方的粗体)的总和(视为部分总和) - 它们对应于一个 x 迭代,它们包含所有 y 迭代 x
    • 最后,我们为所有 x 迭代添加这些值 - 并获取最终值

<强> X (→):<强> 1 <强> 2 第3 4 5 6 ...
ý (↓):<强> 1 <强> 1 <强> 1 1 ...
<强> X (→):<强> 1 <强> 2 第3 4 5 6 ... <登记/> 的 ý (↓):<强> 2 <强> 2 <强> 2 2 ...
ý(↓): 3 3 3 3 ...
ý(↓): ... ... ... ... ...

<强>总和:<强> 0 + <强> 5 + <强> 7 + <强> 9 = 21