您的位置:首页 > 编程语言 > Python开发

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

2017-08-11 00:00 417 查看
本文永久地址: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: