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
您的第一个猜测是正确的:i
和 j
没有递增。
内部循环导致函数在第一次迭代时退出。内部循环保证 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))
所以这是我的代码:
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
您的第一个猜测是正确的:i
和 j
没有递增。
内部循环导致函数在第一次迭代时退出。内部循环保证 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))