我遇到了一个非常奇怪的问题,下面的代码(删除了所有不相关的部分,所以代码看起来可能什么都没做):
def get_items(cred, items):
for i in range(0, len(items)):
for j in range(0, len(items)):
if items[i] + items[j] == cred:
result = [i + 1, j + 1]
result.sort()
break
else:
result = [None, None]
return result
def main():
for idx, val in enumerate(content):
cred = 200
items = [150, 24, 79, 50, 88, 345, 3]
output = get_items(cred, items)
我遇到的问题是if items[i] + items[j] == cred:
行,因为它应该是真的(当I=0和j=3时),但它的计算结果从来都不是真的,这说明我已经尝试在if
语句之前打印出items[i] + items[j]
和cred
,它们都显示为200。然而get_items
方法返回[None, None]
它们肯定都是整数,所以我完全不知道这是怎么发生的
您似乎期望
break
打破这两个循环。它只会打破内部循环;外循环继续,并且result
被重置为[None, None]
。只是return
结果立即而不是打破我认为您正在覆盖每个迭代的结果。试着这样做:
相关问题 更多 >
编程相关推荐