0

我使用指定的错误代码收到此错误:

print str(i+1)+". Horse number "+str(winners[i])+" - "+str(odds(winners[i]))
TypeError: 'list' object is not callable

我相信这可能是由其中一个物体的印刷引起的。谢谢!

4

2 回答 2

2

这将是两个问题之一;我们必须在这里猜测,因为您还没有发布任何代码。

  1. 你有一个局部变量str,它是一个列表。在代码中重命名该变量,它掩盖了内置str函数。

  2. 您有一个局部变量odds,它是一个列表,并且您正试图将其用作函数。也许您也有一个名为 的odds 函数。在这种情况下,重命名变量。

于 2012-10-20T16:04:33.370 回答
0

您可能已经自己弄清楚了。str或者odds,可能是后者,是一个列表,而您错误地尝试使用(),而不是[]. 请尝试以下操作:

print str(i+1)+". Horse number "+str(winners[i])+" - "+str(odds[winners[i]])

或者,更好的是,在 Python 版本 >= 2.6 中:

print '{}. Horse number {} - {}'.format(i+1,winners[i],odds[winners[i]])

有关更多信息,请参阅Python 文档

于 2012-10-20T16:14:34.540 回答