Skip to main content
 首页 » 编程设计

python之检查一个数字是否是另外两个数字的总和

2025年05月04日9freeliver54

问题陈述

给定一个数字列表和一个数字k,返回列表中的任意两个数字相加是否等于k。

示例

给定 [1, 2, 3] 和 k = 5,返回 True 因为 2 + 3 = 5.

这是我尝试做的:

def pairs(n): 
    for i in range(len(n)): 
        for j in range(i+1, len()): 
            yield n[i], n[j] 
 
 
def ListCheck(): 
    number = input("Give me a number:") 
    val = int(number) 
    nums = [1,2,3] 
    for i, j in pairs(nums): 
        if j + i == val: 
            print(True) 
            break 
 
 
ListCheck() 

运行时出现错误,我不明白为什么。

请您参考如下方法:

你也可以做 itertools.combinations,比@bitto 的解决方案短一点:

import itertools 
def f(lst,num): 
    for x,y in itertools.combinations(lst,2): 
        if x+y==num: 
            return True 
    return False 
lst=[1,2,3] 
num=int(input("Give me a number: ")) 
print(f(lst,num))