题目要求就是:自定义一个数字列表,求出列表中第二大数的下标。话不过说,直接上代码:
#自定义一个数字列表,求出列表中第二大数的下标
a=[]
while True:
e=int(input('请输入需要排序的数字:'))
a.append(e)
question=input('是否继续输入(y/n):')
if question == 'n':
break
print(a)
print(len(a))
#求最大值的下标
b =0
i =0
max_value = max(a)
while i < len(a):
if a[i] == max_value:
b = i
i += 1
print(max_value)
print(b)
#删除最大值,组成新的最大值
del a[b]
print(a)
#求新列表的最大值
c = 0
d = 0
second_value = max(a)
while d < len(a):
if a[d] == second_value:
c = d
d += 1
print(second_value)
print(c)
#把列表还原到原来的样子
a.insert(b,max_value)
print(a)
if c<b:
print('第二大值是%d,下标是%d。'%(second_value,c))
elif c >=b:
print('第二大值是%d,下标是%d。'%(second_value,c+1))
else:
pass
运行结果是:
D:\python_work>python text3.py
请输入需要排序的数字:1
是否继续输入(y/n):y
请输入需要排序的数字:3
是否继续输入(y/n):y
请输入需要排序的数字:8
是否继续输入(y/n):y
请输入需要排序的数字:9
是否继续输入(y/n):y
请输入需要排序的数字:10
是否继续输入(y/n):y
请输入需要排序的数字:2
是否继续输入(y/n):y
请输入需要排序的数字:2
是否继续输入(y/n):y
请输入需要排序的数字:100
是否继续输入(y/n):y
请输入需要排序的数字:99
是否继续输入(y/n):y
请输入需要排序的数字:36
是否继续输入(y/n):y
请输入需要排序的数字:27
是否继续输入(y/n):y
请输入需要排序的数字:56
是否继续输入(y/n):n
[1, 3, 8, 9, 10, 2, 2, 100, 99, 36, 27, 56]
12
100
7
[1, 3, 8, 9, 10, 2, 2, 99, 36, 27, 56]
99
7
[1, 3, 8, 9, 10, 2, 2, 100, 99, 36, 27, 56]
第二大值是99,下标是8。
欢迎大家代码拿走测试,出先bug找我!!!