查找带负数的最大值

时间:2017-05-04 20:52:56

标签: python max

我正在处理此代码,以查找用户输入的最大数字。实际上,如果我输入所有负数,程序会将0作为最大值。

我需要添加什么才能处理负数?例如,如果用户输入-3-1,则该程序应打印-1

m = 0
finished = False
while not finished:
    print('Enter a number (0 to finish): ', end = '')
    s = input()
    num = int(s)
    if num != 0:
        if num > m:
            m = num
    else:
        finished = True
print(str(m))

3 个答案:

答案 0 :(得分:3)

我看到三种可能性:

  1. m 设置为一个可笑的小整数来启动;我认为您当前的代码可以在那里工作。
  2. 在循环之前读取第一个输入数字;将其作为 m 的起始值。
  3. 根本不要使用m值:将所有输入数字附加到列表中,并在用户输入 0 max >停止。
  4. 此外,学习使用描述性变量名称。 已完成很好,但 m 在语义上无用, num 值得怀疑(尽管 而非 )。

答案 1 :(得分:3)

使用内置max()函数考虑以下方法:

positives = []   # list for positive numbers
negatives = []   # list for negative numbers
finished = False

while not finished:
    print('Enter a number (0 to finish): ', end = '')
    num = int(input())
    if num > 0:
        positives.append(num)
    elif num < 0:
        negatives.append(num)
    else:
        finished = True

print('Max positive number: ', max(positives))
print('Max negative number: ', max(negatives))

答案 2 :(得分:0)

嘿,您应该尝试将maxelement最初分配给list [0],即列表的第一个元素,然后开始与列表的每个元素进行比较。这应该有效 -

def calculate_max(list1) :
maxelement = list1[0]
for element in list1 :
    if element>maxelement :
        maxelement= element  
     return maxelement

#main
l=[-2,-5,-6]
result = calculate_max(l)
print(result)