gpt4 book ai didi

python - float 错误不可调用

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:04 25 4
gpt4 key购买 nike

我有一个程序可以根据文本文件中提供的文本进行各种计算。打印第二个条目后出现错误(第一个工作正常。)

文件中的条目被解析为一个列表:

['Castro, Starlin', 'CHC', '161', '666', '59', '163', '34', '2', '10']

然后我调用带有四个参数的 singles 函数。

singles = singles(float(line[5]),float(line[6]),float(line[7]),float(line[8]))
print "Singles: %s" % singles

函数如下:

def singles(a,b,c,d):
# a = hits b = doubles c = triples d = homeruns
# hits - (doubles + triples + homeruns)
tmp1 = b + c + d
return a - float(tmp1)

这对于第一个条目工作正常:

['Machado, Manny', 'BAL', '156', '667', '88', '189', '51', '3', '14']

并且计算成功完成。但是,第二个无法完成:

Traceback (most recent call last):
File "\\bhmfp\ian.carroll$\Intro to Computer Programming\Project 3\Project 3\main.py", line 107, in <module>
singles = singles(float(line[5]),float(line[6]),float(line[7]),float(line[8]))
TypeError: 'float' object is not callable

最佳答案

当你打电话时

singles = singles(float(line[5]),float(line[6]),float(line[7]),float(line[8]))

您将函数 singles 替换为该函数在调用时返回的 float。任何对 singles 的后续调用都会尝试调用那个数字,而不是函数,因此会失败。为 return 值使用不同的名称:

new_single = singles(*map(float, line[5:9]))

(注意使用map,切片和解包来简化调用。)

关于python - float 错误不可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23809572/

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