gpt4 book ai didi

python - 使用 max 函数时返回的值不正确

转载 作者:行者123 更新时间:2023-12-01 04:56:59 25 4
gpt4 key购买 nike

以下代码返回不正确的最大值:

maximum = 0
f =open("data.dat", "r")

for line in f:
global maximum
fields = line.split()
classcode = fields[0]
name = fields[1]
scr = fields[2]

maximum=max(scr)
print(classcode, name, scr)

f.close()
print("maximum=", maximum)

数据文件是

1 test2 100
1 test1 100
1 test3 20
1 test4 60
1 test5 33

我得到的结果是

1 test2 100
1 test1 100
1 test3 20
1 test4 60
1 test5 33
maximum= 3

如果我知道为什么我得到错误的值,我们将不胜感激

最佳答案

您正在将 max() 应用于每个单独的值max() 没有任何东西可以与该值进行比较。事实上,它从 scr 中找到具有最高值的一个字符,这只是一个字符串(字符序列)。在您的最后一个 scr 值中,字符串 '33',两个字符具有相同的值,因此它选择了一个,'3'

收集列表中的值(首先转换为整数之后),然后在该列表上调用 max() 会更有效。然后它有一些可以比较的东西:

scores = []

for line in f:
fields = line.split()
classcode = fields[0]
name = fields[1]
scr = int(fields[2])
scores.append(scr)
print(classcode, name, scr)

maximum = max(scores)
print("maximum=", maximum)

关于python - 使用 max 函数时返回的值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27176703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com