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
正如你所看到的那样,首先是X的块,如果j == 2:打印2但是在s和W的第二个块中,如果j == 2不打印2 ...为什么,改变j值
答案 0 :(得分:1)
看起来您的问题出现在第二个for
循环中。您试图在i --> j -1
范围内进行循环,但由于您在开头增加了j
的值,这与编写range(i, i)
相同。也许你可以在j
循环的底部增加for i in range(1, len(s) - 1)
。
答案 1 :(得分:1)
因为l和i循环都是1并且j = i + 1。此时j == 2并打印出来。当您尝试在s循环中从1循环到1时,实际上甚至不会循环一次迭代,并且在下次到达s循环时j不再等于2.
>>> for x in xrange(1,1):
... if True:
... print "hi"
>>>