对用户输入的整数列表应用max()函数不能返回最大值?

问题描述 投票:0回答:1

我想在用户提供的数字列表中找到最大值和最小值。

value = input("Please enter an integer separated by commas. :")

i = value.split(',')

value1 = max(i)
value2 = min(i)

print("max =", value1)

print("min =", value2)

执行代码并输入 1,2,4,36,5 导致

Please enter an integer separated by commas. :1,2,4,36,5
max = 5
min = 1

为什么 max() 功能返回 5 而不是 36?

python max min
1个回答
1
投票

它们是字符串格式的,这就是为什么。只要把它们映射成整数。

value = input("Please enter an integer separated by commas. :")

i=list(map(int, value.split(','))) #<---- Here
print(i)

value1 = max(i)
value2 = min(i)

print("max =", value1)

print("min =", value2)

1
投票

将其转换为整数以获得正确的结果。

value = input("Please enter an integer separated by commas. :")

i=value.split(',')
i = [int(x) for x in i]
value1 = max(i)
value2 = min(i)

print("max =", value1)

print("min =", value2)

OR

value = input("Please enter an integer separated by commas. :")

i=[int(x) for x in value.split(',')]

value1 = max(i)
value2 = min(i)

print("max =", value1)

print("min =", value2)

1
投票

你应该把所有的 i 元素转为int

value = input("Please enter an integer separated by commas. :") #input 1,2,4,36,5

i=[int(el) for el in value.split(',')]
value1 = max(i)
value2 = min(i)
print("max =", value1)
print("min =", value2)

i = [int(el) for el in input("Please enter an integer separated by commas. :").split(',')] #input 1,2,4,36,5

value1 = max(i)
value2 = min(i)
print("max =", value1)
print("min =", value2)

产量

max = 36
min = 1

原代码规定,在 i 作为字符串 ['1', '2', '4', '36', '5'] 所以,他们只需要改成ints,就可以了。minmax 功能才能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.