最大函数忽略两位数

Max function ignoring double digits

我的代码很简单。它告诉你最大的数字,最小的数字,以及你在按下 'E' 键之前输入了多少个数字。但是,'max()' 函数不考虑位数大于 1 的数字。因此它会忽略 range(10,'infinity')。最低限度确实有效,所以我不知道为什么它正在做它正在做的事情。我的代码如下:

list1=[]
while len(list1)>-1:
    i = input("Input a number: ")
    list1.append(i)
    if i == 'E':
        break
del list1[-1]
max1 = max(list1)

min1 = min(list1)
c = len(list1)
print('Max: {}'.format(max1))
print('Min: {}'.format(min1))
print('Count: {}'.format(c))
print(list1)

示例

Input a number: -10
Input a number: 3
Input a number: 4
Input a number: 1
Input a number: 3
Input a number: 5
Input a number: 41
Input a number: E
Max: 5

Min: -10

Count: 7

['-10', '3', '4', '1', '3', '5', '41']

抱歉格式混乱。我不知道如何格式化此网站中的文本,它会自动完成。

您输入的是字符串,所以比较的是字典顺序,而不是数字顺序。考虑

while True:
    i = input("Input a number: ")
    if i == 'E':
        break
    else:
        list1.append(int(i))

通过调用 int,我们将值转换为像 10 这样的整数,而不是字符串 "10",它实际上只是数字 1 后跟零,其概念是订单与您想要的不同。