Skip to main content
 首页 » 编程设计

python之比较运算符无法识别两个相同的数字

2025年05月04日14EasonJim

我遇到了一个非常奇怪的问题,代码如下(删除了所有不相关的部分,因此代码可能看起来什么也没做):

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 时),但它永远不会计算为真,尽管我已经尝试打印出 items[i] + items[j]和 cred就在 if 之前语句,它们都显示为 200。然而 get_items方法返回 [None, None] .

它们都是整数,所以我完全不知道这是怎么发生的?

请您参考如下方法:

您似乎期望 break 打破两个循环。它只会打破内循环;外循环继续进行,result 被重置为 [None, None]。只需立即返回结果而不是中断。