Python 2.7.2函数语法随机出现错误

时间:2012-06-28 06:47:08

标签: python function syntax python-2.7 syntax-error

我正在用Python编写程序,并且我不断收到随机语法错误。错误所说的唯一内容是“SyntaxError: invalid syntax(uppgift2.py, line 16)

这是我正在处理的程序的一部分。

def CalculateWordPoints(word, elementValues):
    points = 0
    # Calculate basic points and letter bonuses
    for i in range(0, len(word)):
    points += int(word[i])*ReturnLetterBonusMultiplier(elementValues[i])

    # Add word bonuses
    for i in range(0, len(word)):
        points *= ReturnWordBonusMultiplier(elementValues[i])
    return points

第16行是该函数的第一行。

2 个答案:

答案 0 :(得分:0)

这里错过了缩进:

for i in range(0, len(word)):
  points += int(word[i])*ReturnLetterBonusMultiplier(elementValues[i])

这不是一个错误,但它会更正确:

range(len(word))

你可以写这两行更pythonic:

points = sum(int(w)*ReturnLetterBonusMultiplier(elementValues[i]) for (i,w) in enumerate(word))

接下来的三行也是如此:

points *= product(ReturnWordBonusMultiplier(elementValues[i]) for (i,w) in enumerate(word))

所以你可以把这个函数写成oneliner:

return sum(int(w)*ReturnLetterBonusMultiplier(elementValues[i]) for (i,w) in enumerate(word)) * product(ReturnWordBonusMultiplier(elementValues[i]) for (i,w) in enumerate(word))

答案 1 :(得分:0)

问题很可能是由于第16行之前的线路 我猜你打开括号(或其他东西)并忘了关闭它们。

另外,你有不好的缩进,正如Igor Chubin所说(但这会导致第20行出错,而不是16行。)