如何有效跟踪最大用户输入值?

时间:2014-02-14 22:07:18

标签: python variables max

我需要找到用户输入的最大数字但是我不能将最大数字定义为数字,比如我定义的“最大= -9999999”,有什么建议吗? “澄清”是计算最大数量出现的时间

largest = -9999999

clargest = 0

while num != 0 :
    num = input("Enter your number or type 0 to end: ")
    if (num[0] == "-" and num[1:].isdigit()) or num.isdigit():
        num = int(num)
        if num != 0:
            if num > largest:
                clargest = 1
            elif num == largest:
                clargest = clargest + 1
            largest = max(largest,num)

2 个答案:

答案 0 :(得分:2)

您可以从数学上有意义的largest = float('-inf')开始,因为只允许用户输入(签名)整数。

旁注:编写循环的方法要简单得多:

while num != 0 :
    num = input("Enter your number or type 0 to end: ")
    if (num[0] == "-" and num[1:].isdigit()) or num.isdigit():
        num = int(num)
        if num != 0:
    # ... keep track of largest

会更简单:

while True:
    try:
        num = int(input("Enter..."))
    except ValueError:
        continue
    if num == 0:
        break
    # ... keep track of largest

这使用推荐的“请求宽恕而不是许可”(try)。它还删除了num != 0的重复。 “这是数字”的测试也更加明显。同时删除num为字符串和数字的需要。

答案 1 :(得分:0)

您有几个选择。以下是其中两个:

选项1: 保留用户输入的所有数字的列表,对其进行排序,然后选择最后一个数字。

选项2: (我想这就是你要做的) 跟踪到目前为止输入的最大数字。而不是将最大值定义为大的负数,而只是保持一个布尔值,该值表示输入是否是第一个数字。用户输入的第一个数字始终是最大的。对于您,具体而言,当clargest为0时,您可以将largest设置为用户输入。