显然,标题中有无法解释的代码。一个信息贫乏的
SyntaxError: invalid syntax
stderr消息并没有告诉我太多信息,所以我将它逐行添加,使用:
[dict.get(['val','val','foo'])]
和后来发现dict.get()
和可迭代对象不能很好地一起工作。
如果你还没有猜到,我在一个令人兴奋的领域,为学习和娱乐制作玩具程序。下面是我的代码:
def wordpoints(word):
points = 0
for char in word:
points += dict.get(char)
return points
这是我想要的:
def wordpoints(word):
return sum[dict.get(char) for char in word]
为了澄清,dict
在我的代码中被命名为tile_p
,代表瓦片点。还有另一个def
,查找拼字游戏玩家的字典中的True|False
结果在MySQL表中,并将其传递给这个函数,如果它cursor.fectchone()
有东西在它。
使用圆括号而不是方括号来调用函数:
def wordpoints(word):
return sum(dict.get(char) for char in word)
解析器实际上告诉你的不仅仅是"语法无效":
return sum[dict.get(char) for char in word]
^
SyntaxError: invalid syntax
看到小^
?它指向导致解析失败的令牌。到目前为止,对于解析器来说一切正常:它看到一个名称(sum
),后面跟着订阅操作符[]
。在括号内,它需要一个任意表达式。直到dict.get(char)
,这是一个有效的表达式,但是下面的标记for
对解析器没有意义——因此此时出现语法错误。