当我将这些输入信息列出时:
List: 123 234 543 2 22 9
min = 123, max = 9
返回最小值为123,最大值为9,而最大值为543,最小值为2
while True:
input_string = input("List: ")
if not input_string:
exit()
ListArray = input_string.split()
max_value = max(ListArray)
min_value = min(ListArray)
print("min = {}, max = {}" .format(min_value, max_value))
我希望输出最大为543,最小为2
答案 0 :(得分:1)
Python中的每个值都是特定的数据类型-例如,字符串,数字,列表,字典,对象(各种类型)等。它们具有不同的语义。让我们尝试一下:
>>> "abc" + "def"
'abcdef'
>>> 1000 + 999
1999
将用户输入的字符串拆分为项目时,这些项目仍为字符串。对于字符串,"a" < "aa" < "b"
,以及类似的"1" < "11" < "2"
(请参阅Lexicographical order)。
要在列表中找到最大和最小数字,必须转换所有单个字符串:
ListArray = [int(s) for s in ListArray]
请注意,如果输入中除了数字以外没有其他内容,程序现在将引发异常。
答案 1 :(得分:0)
不使用jhpratt的注释,可以通过列表理解来做到这一点。您可以将行ListArray = [int(i) for i in input_string.split()]
更改为input_string.split()
,这会将for
中的每个元素转换为一个int。
如果您更愿意使用for i in range(len(ListArray)):
ListArray[i] = int(ListArray[i])
循环而不是列表理解,可以执行以下操作:
/
这应该使您的代码如您所愿!
答案 2 :(得分:0)
一旦获得用户输入的input_string
,就可以使用列表推导将input_string.split()
的每个字符串元素转换为一个整型。此时ListArray
基本上是一个数字列表,您现在可以轻松地计算最小值和最大值。
input_string = input("Insert a list of numbers: ")
ListArray = [int(i) for i in input_string.split()]
print("min = {}, max = {}" .format(min(ListArray), max(ListArray)))