Increment error: Python

Increment error: Python

所以这是我的代码:

def create(t):
    if len (t[0]) != len (t[1]):
        raise ValueError ('something')
    for i in range (1):
        for j in range (len(t[0])-1):
            if sum (t[i][j]) + (len (t[i][j])-1) >= len (t[0]):
                raise ValueError ('something')
            else:
                return (t)

我尝试了什么:

t = (((2,), (3,), (2, 3),), ((2,), (3,), (3,)))

最初我认为问题是 i 和 j 由于某种原因没有递增,但也许是第二个 if 子句被忽略了(可能写得不好)? 非常感谢,对于菜鸟问题​​深表歉意:s

您的第一个猜测是正确的:ij 没有递增。

内部循环导致函数在第一次迭代时退出。内部循环保证 raise 退出函数,或 return 退出函数。此外,for i in range(1) 只进行一次迭代,i==0.

也许(我说也许,因为我不知道你的功能是应该做什么)解决方案是摆脱else并突出return三站。

此外,range(len(t[0])-1) 可能是错误的。试试 range(len(t[i])):

def create(t):
    if len (t[0]) != len (t[1]):
        raise ValueError ('something')
    for i in range (1):
        for j in range (len(t[i])):
            print (i,j)
            if sum (t[i][j]) + (len (t[i][j])-1) > len (t[0]):
                raise ValueError ('something')
    return (t)

t = (((2,), (3,), (2, 3),), ((2,), (3,), (3,)))
print (create(t))