我正在处理此代码,以查找用户输入的最大数字。实际上,如果我输入所有负数,程序会将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))
答案 0 :(得分:3)
我看到三种可能性:
此外,请学习使用描述性变量名称。 已完成很好,但 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)