某在线培训机构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

    原文作者:python入门
    原文地址: https://my.oschina.net/bysu/blog/1506422
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞