某在线培训机构python入门第1课习题

本文永久地址:https://my.oschina.net/bysu/blog/1506422

某在线培训机构python入门第1课习题:给定一个列表和一个target值,求出列表中某2个元素之和等于给定target值的所在索引,其值按从小到大的顺序排序。只求符合第一个值。譬如:给定列表[1,3,9,5,4,6],目标值为4,那么最终结果就是[1,3]的所在位置+1,也就是(1,2).

 

代码如下:

PS:不考虑算法性能哈~!仅供自己学习python基础

#coding=utf-8
#获取符合条件的值,并以元组的方式返回
def is_result_value(xlist,targer):
    if min(xlist)> targer:
        return "无解~!"
    for x in xlist:
        count = xlist.index(x) #获取当前元素的索引
        if x > targer:
            continue
        else:
            temp_list = xlist[count+1:] #根据获取到的元素索引,进行构造新的列表
            for i in temp_list:
                if (x+i)==targer:
                    return x,i
                else:
                    continue
    return "无解"

#根据得出的结果,对返回的值进行排序
def value_index_sort(xlist,tuple_value):
    for x in tuple_value:
        if "无解" in tuple_value:
            return "无解~!"
    if(max(tuple_value)>tuple_value[1]):#表示值的大小顺序为从大到小
        a = xlist.index(tuple_value[1]) + 1
        b = xlist.index(tuple_value[0]) + 1
    else:
        a = xlist.index(tuple_value[0]) + 1
        b = xlist.index(tuple_value[1]) + 1
    return a,b

maxnum = [1,3,9,5,4,6]
is_boolean = True
target = 0
#如果是无解,继续输入
while is_boolean:
    target = int(input("target = "))
    if "无解" in value_index_sort(maxnum,is_result_value(maxnum,target)):
        is_boolean = True
        print(value_index_sort(maxnum,is_result_value(maxnum,target)))
    else:
        is_boolean = False
#打印最终有解的结果
print(value_index_sort(maxnum,is_result_value(maxnum,target)))

本文永久地址:https://my.oschina.net/bysu/blog/1506422

转载于:https://my.oschina.net/bysu/blog/1506422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值