此块代码给了我这个错误'TypeError:'int'对象不是迭代器'。我找不到问题,因为我有一个几乎相同的程序,可以正常工作。
else:
v3=r
for h in range(0,len(oddnums)):
if v1+v2+v3+v4==totalvals:
temp=[v1,v2,v3,v4]
combinations.append(temp)
else:
next(h)
print()
这里是完整的源代码: 全局奇数 全局温度 全球合并 整体组合 全球账户 全球总数 全球性 全局v4
for i in range (0 ,len(oddnums)):
v1=oddnums[i]
if i>=totalvals:
next(i)
print()
else:
print("v1")
#print(v1)
for x in range (0,len(oddnums)):
v2=oddnums[x]
print('v2')
total=x+i
if total >=totalvals:
next(x)
print()
else:
rem=totalvals-(x+i)
if rem<4:
next(x)
print()
else:
print()
for r in range (0,len(oddnums)):
#print('v3')
count += 1
#print(count)
lrem = rem - oddnums[r]
if lrem<1:
next(r)
print('no val')
else:
v3=r
for h in range(0,len(oddnums)):
if v1+v2+v3+v4==totalvals:
temp=[v1,v2,v3,v4]
combinations.append(temp)
else:
next(h)
print()
my_method()
完整错误消息:
回溯(最近通话最近): 你好 文件“ C:/ Users / willf / Documents / Transition Task / question1 / src / com / companyBoolean / 4waycombo.py”,第92行,在 v1 my_method() v2
文件“ C:/ Users / willf / Documents / Transition Task / question1 / src / com / companyBoolean / 4waycombo.py”,第84行,在my_method中 下一个(h) TypeError:“ int”对象不是迭代器
以退出代码1完成的过程
答案 0 :(得分:4)
问题是尝试使用next(i)
和next(x)
。 i
和x
是range
迭代器产生的整数,而不是迭代器本身。
将这些行更改为continue
,就可以了。
答案 1 :(得分:1)
问题在这里:
else:
next(h)
print()
next()
获取 iterator 的下一项。由于h是int
,因此无法对其进行迭代。
您不需要在for循环中使用next()
,因为for循环无需其他代码即可进行迭代(每次循环运行时,h都会增加)。