def my_max():
#using input to collect number to list
list_a = input("print your list with numbers: ").split(",")
# Searching for the highest number
max = 0
for i in list_a:
if i > str(max):
max = i
print(max)
my_max()
当我输入数字时,有时会打印出最高的数字,但并非总是如此。
例如,如果我写:“ 54,64,446” 数字“ 64正在打印。有人知道为什么吗?
答案 0 :(得分:2)
在执行逻辑之前,您需要将其映射到int
的列表中:
def my_max():
# using input to collect number to list
list_a = input("print your list with numbers: ").split(",")
# Searching for the highest number
return max(map(int, list_a))
print(my_max())
样品运行:
print your list with numbers: 54,64,446
446
在','
上拆分将为您提供字符串列表。您观察到的是预期的行为,因为与整数列表相比,您找到的字符串列表最多。
如果不使用max()
,我将执行以下操作:
def my_max():
# using input to collect number to list
list_a = list(map(int, input("print your list with numbers: ").split(",")))
# Searching for the highest number
max = list_a[0]
for x in list_a[1:]:
if x > max:
max = x
return max
print(my_max())
答案 1 :(得分:0)
您的list_a
包含字符串,而不是数字。比较时,您正在比较这些字符串的值。结果是按字母顺序而不是按数字顺序获得最高值。
以字符串而不是数字来表示,> 64> 54> 446