简体   繁体   中英

Applying the max() function on a user entered integer list does not return the maximum?

I want to find the maximum and minimum in a user provided list of numbers.

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

i = value.split(',')

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

print("max =", value1)

print("min =", value2)

Executing the code and entering 1,2,4,36,5 results in

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

Why does the max() function return 5 instead of 36 ?

You should cast all the i elements to 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)

OR

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)

Output

max = 36
min = 1

The original code made that elements in i as strings ['1', '2', '4', '36', '5'] so they just need to be changed to ints and that made the min and max functions to work properly.

They are in string format that's why. Just map them to integer.

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)

Convert it into integer to get proper results

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM