最多的数字很奇怪

时间:2016-01-04 14:31:01

标签: python python-3.x

numbers=[]
maximum=0
while True:
    number =input("Enter a number:")
    if number == "0":
        break
    else:
        numbers.append(number)
print ("The largest number entered was:")
print (max(numbers))

只有当我输入这些数字时,这似乎适用于10以下的数字:

Enter a number:10
Enter a number:9
Enter a number:3
Enter a number:4
Enter a number:23
Enter a number:0
The largest number entered was:
9

正如你所看到的,最大的数字实际上是23,但它打印了9,我做错了什么?

3 个答案:

答案 0 :(得分:2)

您正在追加字符串,而是追加整数:

numbers.append(int(number))

或更好:

while True:
    number = int(input("Enter a number:"))
    if not number:
        break
    else:
        numbers.append(number)

编辑:你可以用try-except块包装整数转换,以确保用户只输入数字:

while True:
    nb = input('Enter a number:')
    try:
        nb = int(nb)
        if not nb:
            break
        else:
            numbers.append(nb)
    except ValueError:
        print('Please Enter Valid Number')
print ("The largest number entered was:")
print (max(numbers))

答案 1 :(得分:1)

您将返回字典最大值,即9.这是因为您从字符串类型构建append(int(number))容器。

要返回数字最大值,请使用 Run keyword if '${var_a}' == 'X' and '${var_b}' == 'Y' ... Click Element Locator_a ... ELSE IF '${var_a}' == 'X' and '${var_b}' != 'Y' ... Click Element Locator_b ... ELSE ... Click Element Locator_c 为整数构建容器。

答案 2 :(得分:0)

您可以将int附加到max,或将mapint list打印到print (max(map(int, numbers)))

numbers