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