简单的加法

这篇博客讨论了如何在Python中找到数组中两个数的组合,其和等于给定的目标数字。作者提供了两种方法:一种是通过双重循环遍历数组,另一种是删除当前元素后再进行匹配。这两种方法都有效地解决了问题,展示了不同的编程思路。
摘要由CSDN通过智能技术生成

问题描述:
输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。如果有多对数字的和等于输入的数字,输出任意一对即可。例如:输入数组1 2 4 7 11 15和数字15。由于4+11=15,因此输出4和11。

l = input('输入一个数字字符串,以空格作为间隔:\n')
# part1 start 判断是否以空格作为间隔进行了输入
try:
    list1 = l.split(' ') # 以空格作为分割
    list2 = []
    for i in list1:
        list2.append(int(i)) # 将i以int的形式,添加到list2中,生成一个数组
except:
    print('输入格式错误,并不是以空格作为间隔。')
    sys.exit()   # try except结构中,用exit()退出
# part1 end
# 此外part1也可以用以下语句表示
# list2 = [int(i) for i in str_1.split(' ')]
# print(list2)
# part2 start 判断是否输入的是一个数字
num = input('输入一个数字。\n')
try:
    n = int(num) # 明显,如果这时候输入一个不是数字的东西的话,int转化不出来,会出现异常
except:
    print('输入格式错误,输入的不是数字.')
    sys.exit()
# part2 end
# part3 start 构造函数,作用是寻找这两个数
def find_it_in_list():
    try:
        for i in range(0,len(list2)):
            for j in range(i+1,len(list2)):
                if list2[i]+list2[j] == n :
                    print('两个数分别为:',list2[i],list2[j])
                    raise StopIteration  #通过引发异常的方法跳出嵌套循环
    except StopIteration:
        exit()
# part3 end
# part4 start 调用函数
find_it_in_list()
# part4 end

这个方法的函数find_it_in_list(),我的想法是遍历,即通过列表中每两个数的组和判断是否满足要求,但是我又看到论坛里有人用了另一种方法,没有通过对每个列表中的元素进行索引,而是直接针对元素进行操作

def find_it_in_list2():
    for i in list2:
        a = list2
        list2.remove(i)
        for j in a:
            if i + j == n:
                print(i,j)
                break

它相当于将列表进行复制之后,将当前循环所进行到的元素remove掉,就可以比较简单的写出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值