python当s在范围(i,j1)内时,j的值改变了:j=3,但在范围之前是j=2…请帮助m

2024-09-27 21:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

for l in range(1,len(S)-1):
    for i in range(1,len(S)-l):
        j=i+l
        for X in N:
            max_score = 0
            args = None
            if j==2:
                print j
            for s in range(i,j-1):#s is for split point
                if j==2:
                    print j
                for W in probBiNonterDic.keys():#y<==>  X->YZ
                    if j==2:
                        print j

如你所见,在第一个for X块中,如果j==2:打印2,但是在第二个s和W块中,如果j==2不打印2…为什么会这样,改变j值


Tags: innoneforlenifisargsrange
2条回答

因为l和i循环都从1开始,j=i+l,此时j==2并打印出来。当你尝试在s循环中从1循环到1时,你甚至连一个迭代都不会循环,下一次到达s循环时,j不再等于2。在

>>> for x in xrange(1,1):
...     if True:
...         print "hi"
>>> 

看来您的问题出在第二个for循环中。您试图在一个从i > j -1开始的范围内循环,但是由于在开始时增加了j的值,这与写入range(i, i)相同。也许您可以在for i in range(1, len(s) - 1)循环的底部增加j。在

相关问题 更多 >

    热门问题