2014-11-21 74 views
-2

我的教授希望我们解决这个代码和其他几个手工类似的代码。由于我是新来的节目我不知道该怎么做的一切,我完全失去了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) 
+2

您的教授在课堂上没有教您这个吗?你有任何讲课笔记吗?你读过哪些书?你问过你的教授吗? – pts 2014-11-21 00:01:36

+1

阅读此:https://docs.python.org/2/tutorial/controlflow.html#for-statements – user3885927 2014-11-21 00:03:28

+0

解决手工似乎是一个很好的技能,但如果你不应该运行它,你可能不要在互联网上问(亲切地)陌生人:)查找Python for循环,打印语句,赋值语句和范围函数,开始 – 2014-11-21 00:04:09

回答

1

我采取在刺这个。

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

转化为

-1,0

-1,0

-1,0

为什么? for循环说:“对于范围在2到5之间的每个数字(不包括5),做一些事情” 这是另一个循环。

“对于2号,给我的-1到1(不包括1)的范围内。

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

NUM = 0 * 1 + 2 = 2(NUM的新值现在是2,而不是原来0,记住这要下一个迭代)

NUM = 2 * 0 + 2 = 2

NUM = 2 * -1 3 = 1

etc

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 
  • 答: 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。
  • ...
+1

如何在C中的“j”变为“0” – 2014-11-21 00:14:34

+0

@Caroline Rodgers:在E之后,我们回到C,因为for循环还没有结束。首先''为j'循环正在递增j。 'range(-1,1)'表示整数'-1 <= j <1',前一个值为-1,所以下一个值为0.不再有j的值,所以下一次在C中,我会增加(从2到3),并且j将从-1重新开始。 – pts 2014-11-21 00:17:04

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"