Python基础练习题

 给定一个列表和一个值,列表中数字两两相加如果有等于这个值的,
就返回这两个值的索引,否则返回[-1, -1],比如:
1. 给定列表[1, 5, 7, 20], 给定值12,返回[1,2]
2. 给定列表[1, 2, 6, 8 ], 给定值2,返回[-1, -1]

a=eval(input())
x=int(input())
flag=1
for i in range(len(a)):
    for j in range(len(a)):
        if a[i]!=a[j] and a[i]+a[j]==x:
            print("["+str(i)+","+str(j)+"]")
            flag=0
            break
    if flag==0:
        break
if flag:
    print([-1, -1])

 

 代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。

def func(li,n):
    for i in range(1,len(li)):
        for j in range(i):
            if li[j]+li[i]==n:
                return [j,i]
    return [-1,-1]

print(func([1, 5, 7, 20],12))
print(func([1, 2, 6, 8 ],2))

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

shu = [1,2,3,556,22,23] #你可以随机创建
zhi = int(input('值:'))
c = 0
for i in shu:
    for n in shu:
        if i + n == zhi:
            print('[' + str(shu.index(i)) + ',' + str(shu.index(n)) + ']')
            c = 1
if c == 0:
    print('[-1'+','+'-1]')

望有不足请指点··