0

我正在用 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 行是函数的第一行。

4

2 回答 2

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))
于 2012-06-28T06:50:51.033 回答
0

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

此外,正如 Igor Chubin 指出的那样,您的缩进很差(但这会导致第 20 行出现错误,而不是第 16 行)。

于 2012-06-28T06:51:46.820 回答