Python-手工解决代码?

时间:2014-11-21 00:00:12

标签: python

我的教授希望我们解决这个代码以及其他一些手工相似的代码。由于我是编程新手,所以根本不知道如何做到这一点,我完全迷失了

num = 0

for i in range(2,5):
    for j in range(-1, 1):
        num = num*j + i
        print("i =", i, "j =", j, "num =", num)

3 个答案:

答案 0 :(得分:1)

我接受了这个。

for i in range(2,5):
  for j in range(-1, 1):

转换为

2

-1,0

3

-1,0

4

-1,0

为什么呢? for循环表示"对于2到5(不包括5)范围内的每个数字,请执行SOMETHING" 这是另一个循环。

"对于数字2,给我-1到1的范围(不包括1)。

之后只是一些基本的数学。

num = 0 * -1 + 2 = 2(num的新值现在是2,而不是原来的0,请记住这将进入下一次迭代)

num = 2 * 0 + 2 = 2

num = 2 * -1 +3 = 1

答案 1 :(得分:1)

我会这样做。

这是你的代码:

num = 0

for i in range(2,5):
    for j in range(-1, 1):
        num = num*j + i
        print("i =", i, "j =", j, "num =", num)

range(2, 5) = [2, 3, 4]range(-1, 1) = [-1, 0],所以:

num = 0

for i in [2, 3, 4]:
    for j in [-1, 0]:
        num = num*j + i
        print("i =", i, "j =", j, "num =", num)

现在进行第一次迭代,i = 2j = -1num = 0,所以:

num = 0 * -1 + 2 = 0 + 2 = 2
      ^    ^   ^
      |    |   |
     num   j   i

因此,打印语句print("i =", i, "j =", j, "num =", num)将打印以下内容:

"i = 2 j = -1 num = 2"

对于第二次迭代,i = 2j = 0num = 2,所以:

num = 2 * 0 + 2 = 0 + 2 = 2
      ^   ^   ^
      |   |   |
     num  j   i

因此,打印语句print("i =", i, "j =", j, "num =", num)将打印以下内容:

"i = 2 j = 0 num = 2"

对于第三次迭代,i = 3j = -1num = 2,所以:

num = 2 * -1 + 3 = -2 + 3 = 1
      ^    ^   ^
      |    |   |
     num   j   i

因此,打印语句print("i =", i, "j =", j, "num =", num)将打印以下内容:

"i = 3 j = -1 num = 1"

你的打印陈述总是如下:

"i = 2 j = -1 num = 2"
"i = 2 j = 0 num = 2"
"i = 3 j = -1 num = 1"
"i = 3 j = 0 num = 3"
"i = 4 j = -1 num = 1"
"i = 5 j = 0 num = 4"

答案 2 :(得分:0)

以下是我将如何遵循该计划:

#A
num = 0
#B
for i in range(2,5):
    for j in range(-1, 1):
        #C
        num = num*j + i
        #D
        print("i =", i, "j =", j, "num =", num)
        #E
  • A:num未定义,i未定义,j未定义。
  • B:num为0,i未定义,j未定义。
  • C:num为0,i为2,j为-1。
  • D:num为2,i为2,j为-1。
  • E:与D相同,但刚打印出来:i = 2, j = -1, num = 2
  • C:num为2,i为2,j为0。
  • ...