python实现寻找一个数字列表中第二大的值,打印第二大的值以及它的下标

题目要求就是:自定义一个数字列表,求出列表中第二大数的下标。话不过说,直接上代码:

#自定义一个数字列表,求出列表中第二大数的下标
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找我!!!

猜你喜欢

转载自blog.csdn.net/qq_45381011/article/details/107722831