2012-10-20 66 views
0

我得到这个错误与指定的错误代码:错误与Python代码2.7.3

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

我相信它可以通过对象之一的印刷造成的。谢谢!

+1

不需要依赖信仰。在违规行之前加上'print locals()',看看它说什么。 – georg

+0

“赔率”是一个列表吗? – Keith

回答

2

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

  1. 您有一个本地变量str这是一个列表。重命名你的代码中的变量,它掩盖了内置的str函数。

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

+0

它可能不是'str'。虽然诊断是正确的。 –

+0

@ IgnacioVazquez-Abrams:我错过了'odds()'调用,谢谢。 –

0

你可能已经知道了你自己。 strodds,可能是后者,是一个列表,您错误地尝试使用()而不是[]来索引它。而不是尝试以下操作:

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 Doc