python中有关list

问题

img

我的解答思路和尝试过的方法

def twonums_sum(n,lst):
for x in lst:
for y in lst:
if x + y == n:
result = print(lst.index(x),"+",lst.index(y))
else:
result = print('-1')
return result

def main():
number = input("Please input a number as the sum.")
list = input("Please input a list.")
twonums_sum(number,list)

if name == 'main':
main()

运行结果及报错内容

返回的数值全是“-1”

def twonums_sum(n, lst):
        for i in range(len(lst)):
                for j in range(len(lst)):
                        if lst[i]+lst[j]==n and lst[i]!=lst[j]:
                                return i,j
        return -1

if __name__ == '__main__':
        
        lst = [1,4,5,6,7,8,9,10,11,12,13,15,18,19,20,21,29,34,54,65]
        n = int(input())
        t = twonums_sum(n, lst)
        if t==-1:
                print('not found')
        else:
                print('下标为:',*t)
                print('两数为:',*[lst[i] for i in t]) #测试用可去掉

def twonums_sum(n,lst):
    l=len(lst)

    for x in range(0,l-1):
        for y in range(x+1,l):          
            if int(lst[x]) + int(lst[y]) == n: #需要转换为int在进行计算
                #print(x,"+",y) #result = print(lst.index(x),"+",lst.index(y))
                return x,y
            '''else:
                result = print('-1')
            '''
    # return result
    return -1

def main():
    number = int(input("Please input a number as the sum."))#转换为int
    s= input("Please input a list.") #输入的是字符串
    list=s.split(" ") #空格作为分隔符
    result=twonums_sum(number,list)
    if(result == -1):
        print('not found')
    else:
        print('下标为:',*result)

if __name__ == '__main__':
    main()