如何编写一个程序,将无限数量的数字作为输入并输出下一个 用户输入数字后想要的屏幕最大数量 退出。
用户与程序交互的示例如下所示:
Please enter a positive number (type -1 to exit): 99
Please enter a positive number (type -1 to exit): 66
Please enter a positive number (type -1 to exit): 5
Please enter a positive number (type -1 to exit): 23
Please enter a positive number (type -1 to exit): 46
Please enter a positive number (type -1 to exit): 326
Please enter a positive number (type -1 to exit): 661
Please enter a positive number (type -1 to exit): -3
The second largest number entered is: 661
答案 0 :(得分:1)
这是Python2.x的一个示例,如果您使用的是Python3,请尝试使用input
而不是raw_input
。我的方法是将输入作为字符串并使用try/catch
将其转换为整数,然后将它们存储到列表中。
您可以使用max
方法获取最大值并将其删除,以便下次使用max
时,您将获得第二大数字。
input_list=[]
while True:
string=raw_input("Please enter a positive number (type -1 to exit)")
try:
num=int(string.strip())
if num!=-1:
input_list.append(num)
else:
largest=max(input_list)
input_list.remove(largest)
print "The largest value is {0}".format(largest)
sec_largest=max(input_list)
input_list.remove(sec_largest)
print "The second largest value is {0}".format(sec_largest)
break
except Exception as e:
print "can not convert string to int"
如果列表不是很大,你也可以对列表进行排序,否则可能需要一些时间,然后弹出最大的数字。
另一种方法是,如果你只想要第二大数字,你可以将输入与最后一个输入数字进行比较,它将占用更少的内存。
希望这有帮助。