【问题标题】:Why i am getting 9 as max() when there are numbers>9 in list为什么当列表中有数字> 9时我得到 9 作为 max()
【发布时间】:2019-10-08 19:16:49
【问题描述】:

我用 Python 编写了一个代码来打印用户输入的最小值和最大值。如果我输入数字 0 到 15,我希望 max() 返回 15,min() 返回 0。但是,max() 返回 9:

i = (input().split(" "))
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

print(min(i))
# 0
print(max(i))
# 9

max(i) 为什么不返回 15?

【问题讨论】:

  • input numbers - 先转换为int?如果你比较字符串,'9'>'10'
  • 只需显示您的完整代码以帮助您。例如,如果您使用此列表i = [1, 2, 3, 4, 5, 6, 7, 9, 11, 34],您不会有任何问题

标签: python python-3.x list


【解决方案1】:

如果您查看您的列表i,您将看到您输入的数字存储为字符串,而您希望根据它们的数值来评估它们。 Python 也能够计算字符串的最大值(请参阅this post 了解更多信息)。

您可以通过将输入显式转换为整数来解决此问题:

i = [int(x) for x in input().split(" ")]

print(max(i))
print(min(i))

【讨论】:

    【解决方案2】:

    你也可以这样做。

    i = list(map(int, input().split(" ")))
    
    print(min(i))
    print(max(i))
    

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多